请用python完成以下任务:1、由键盘输入一句中文短语。2、提取该短语中的数字并输出。3、利用机器学习算法提取该句中的关键词并与自建词典比对,输出比对结果。
时间: 2024-02-15 17:02:57 浏览: 69
基于Python实现的中文关键词或关键句提取工具源代码,实现了多种中文关键词提取算法,扩展性强,开箱即用
好的,我来帮你解决这个问题。首先,我们需要安装一些依赖库,包括jieba和gensim。你可以使用以下命令进行安装:
```
pip install jieba gensim
```
然后,我们可以按照以下步骤完成任务:
1. 由键盘输入一句中文短语:
```python
phrase = input("请输入一句中文短语:")
```
2. 提取该短语中的数字并输出:
```python
import re
# 使用正则表达式提取数字
nums = re.findall(r"\d+", phrase)
# 输出数字
print("短语中的数字为:", nums)
```
3. 利用机器学习算法提取该句中的关键词并与自建词典比对,输出比对结果:
```python
import jieba
from gensim import corpora, models
# 加载自建词典
jieba.load_userdict("my_dict.txt")
# 分词
words = jieba.lcut(phrase)
# 去除停用词
stopwords = ["的", "了", "是", "在", "我", "你", "他"]
words = [word for word in words if word not in stopwords]
# 构建语料库
dictionary = corpora.Dictionary([words])
corpus = [dictionary.doc2bow(words)]
# 训练TF-IDF模型
tfidf = models.TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]
# 加载LDA模型
lda = models.LdaModel.load("my_lda_model")
# 提取关键词
keywords = [word for word, score in lda.show_topic(0, topn=10)]
# 输出比对结果
matched = [word for word in keywords if word in words]
print("关键词为:", matched)
```
其中,自建词典可以根据你的需求进行构建,保存在my_dict.txt文件中。LDA模型需要在预处理好的语料库上进行训练,保存在my_lda_model文件中。你也可以根据需要调整关键词的数量和匹配方式。
阅读全文