[英]Lists in Python (Using NLTK)
我正在尝试以[[(the,cat),(cat,with),(with,fur)] [(the,dog),(dog,with),(with, ball)....... etc]来自一个文本文件,句子如下:
带毛皮的猫\\带球的狗\\ n
我一直在遇到的问题是,当我在文件中逐行读取行时,制作元组(变量标签)并创建最终列表(变量连接)时,会出现空的情况,连接变为0好吧,实际上不是0,但列表显示为[[],[],[]]
这是该程序部分的代码:open('corpus.txt','r')为f:
with open('corpus.txt', 'r') as f:
for line in f:
cnt = 0
sa = nltk.word_tokenize(line)
label[:] = []
for i in sa:
words.append(i)
if cnt>0:
try: label +=[(prev , i)]
except: NameError
prev = i
cnt = cnt + 1
if label != []:
connection += [label]
print connection
我希望有人能理解我的问题,因为它让我发疯,而且我已经没时间了。 我只是想知道我在这里做错了什么,所以我可以在每个循环中更新我的连接列表,而不会丢失之前保存的内容。
谢谢你的帮助
您可以使用nltk.bigrams
来获取元组,而无需担心边界条件恰到好处。 如果words
是一个句子中words
的列表,那么你就得到了所有的双字母组合
bigrams = nltk.bigrams(words)
我没有安装NLTK,但看看这是否适合你:
with open('corpus.txt', 'r') as f:
answer = []
for line in f:
cnt = 0
sa = nltk.word_tokenize(line)
answer.append([tuple([char, sa[i+1]]) for i,char in enumerate(sa[:-1])])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.