请用python完成:由键盘输入一个中文短句,将该短句与自建词典(保存在pkl文件中)进行对比,判断短句中是否有dictionary1中的词语,若有则break,没有则判断是否有dictionary2中的词语
时间: 2024-02-18 14:00:04 浏览: 86
好的,我来为您解答。首先,我们需要用到pickle模块来读取pkl文件中的词典,代码如下:
```python
import pickle
with open('dictionary1.pkl', 'rb') as f:
dictionary1 = pickle.load(f)
with open('dictionary2.pkl', 'rb') as f:
dictionary2 = pickle.load(f)
```
其中,'dictionary1.pkl'和'dictionary2.pkl'是自建词典的文件名,需要根据实际情况修改。
接下来,我们可以使用input函数获取用户输入的中文短句,代码如下:
```python
sentence = input('请输入一个中文短句:')
```
接着,我们可以使用jieba分词工具将短句进行分词,代码如下:
```python
import jieba
words = jieba.lcut(sentence)
```
然后,我们可以遍历分词后的列表,查找是否有在dictionary1中的词语,如果有,则直接退出循环,代码如下:
```python
for word in words:
if word in dictionary1:
print('短句中包含dictionary1中的词语:', word)
break
```
如果短句中没有在dictionary1中的词语,则继续查找是否有在dictionary2中的词语,代码如下:
```python
else:
for word in words:
if word in dictionary2:
print('短句中包含dictionary2中的词语:', word)
break
else:
print('短句中没有在自建词典中匹配到任何词语')
```
完整代码如下:
```python
import pickle
import jieba
with open('dictionary1.pkl', 'rb') as f:
dictionary1 = pickle.load(f)
with open('dictionary2.pkl', 'rb') as f:
dictionary2 = pickle.load(f)
sentence = input('请输入一个中文短句:')
words = jieba.lcut(sentence)
for word in words:
if word in dictionary1:
print('短句中包含dictionary1中的词语:', word)
break
else:
for word in words:
if word in dictionary2:
print('短句中包含dictionary2中的词语:', word)
break
else:
print('短句中没有在自建词典中匹配到任何词语')
```
希望能够帮到您!
阅读全文