【发布时间】:2018-08-21 22:54:46
【问题描述】:
我有以下列表:t = ['one', 'two', 'three']
我想读取一个文件并为列表中存在的每个单词添加一个点。例如。如果"one"和"two"存在于“CV.txt”中,则points = 2。如果它们都存在,则points = 3。
import nltk
from nltk import word_tokenize
t = ['one', 'two', 'three']
CV = open("cv.txt","r").read().lower()
points = 0
for words in t:
if words in CV:
#print(words)
words = nltk.word_tokenize(words)
print(words)
li = len(words)
print(li)
points = li
print(points)
假设'CV.txt'包含“one”和“two”这两个词,并以词分割(tokenized),则变量“points”应该加2分
但是,此代码返回:
['one']
1
1
['two']
1
1
正如您所看到的,长度只有 1,但应该是 2。我确信有一种更有效的方法可以通过迭代循环或其他方式而不是 len。 对此的任何帮助将不胜感激。
【问题讨论】:
-
据我所知,您并没有将长度添加到总点数中。你只是让它平等。这可能是问题吗?
-
长度等于点数。例如,如果存在 6 个单词,则长度应为 6。每个单词 1 分 == 6。
标签: python list file loops nltk