我需要检查myDict中的每个键是否出现在大文本的句子中,大约200万个单词。如果找到了key,则打印键和所有找到它的句子。程序从myList创建dict。
myList :[' Luke / NP 1 / NUM',' 1 / NUM而/ P many / ADJ已经/ V承担/ VN到/ TO编译/ V a / DET语句/ N / P / DET事实/ N / / WH是/ V给定/ VN满/ ADJ信用/ N / P us / PRO,/,',' 2 / NUM只/ /作为/ P那些/ DET谁/ WH来自/ P-LSB - /(/ DET -RSB- /)开始/ VG成为/ VD目击者/ N和/ CNJ服务员/ N / P / DET消息/ N已传送/ VN这些/ DET到/ TO我们/ PRO,/,',...]
预期结果如下:
和[' CNJ']
[&#39; P&#39;] 中的2 / NUM只/ /作为/ P那些/ DET谁/ WH来自/ P-LSB - /(/ DET -RSB- /)开始/ VG成为/ VD目击者/ N 和/ CNJ < / strong>服务员/ N / P / DET消息/ N已交付/ VN这些/ DET到/ TO我们/ PRO,/,
1 / NUM而/ P many / ADJ有/ V承担/ VN到/ TO编译/ V a / DET陈述/ N / P / DET事实/ N / WH是/ V给定/ VN满/ ADJ信任/ N / P us / PRO,/, 到[&#39; TO&#39;] 1 / NUM而/ P many / ADJ已经/ V承担/ VN 到/ TO 编译/ V a / DET陈述/ N / P / DET事实/ N / WH是/ V给定/ VN满/ ADJ信用/ N / P us / PRO,/, 2 / NUM只/ /作为/ P那些/ DET谁/ WH来自/ P-LSB - /(/ DET -RSB- /)开始/ VG成为/ VD目击者/ N和/ CNJ服务员/ N / P / DET消息/ N已传送/ VN这些/ DET 到/ TO 我们/ PRO,/, ............ 我的代码工作量很小,但延迟了大量的文本。请伙计们,我相信有办法解决这个问题。以下是代码的一部分: 感谢。
import sys
from collections import defaultdict
dic = defaultdict(list)
for sent in myList:
wt_tupl = [wt.split('/') for wt in sent.split()]
for (w,t) in wt_tupl:
if w in dic and t in dic[w]:
continue
else:
dic[w].append(t)
for k,v in dic.items():
print k,v
for i, sent in enumerate(f):
wts = zip(*[wt.split('/') for wt in sent.split()])
line = wts[0]
if k in line: #guess my problem is here!
print sent.strip()
print
print
答案 0 :(得分:0)
你的问题在于字典中每个单词的整个文件。 相反,尝试只检查一次文件,检查每个单词是否在字典中。