我有这段代码,它应该将单词的肯定语料库与主题文本进行比较。它表现得很好,直到我发现重复的文本没有被分解。
文字:这是一部非常好的电影,太好了
肯定列表:好、更好等..
该脚本在以下实现中仅计为“好”一次:
readFile = open('test.txt','r').read()
readFileList = readFile.split('\n')
counter = 0
for eachNeg in negWords:
if eachNeg in readFile:
counter -= 1
print eachNeg
print counter
for eachPos in posWords:
if eachPos in readFile:
counter +=1
print eachPos
print counter
最佳答案
该代码完全符合您的描述。您告诉 python 如果文本中出现该单词,则将计数器加 1,如下所示:
a in [aaaabbbbccc]
>> True
您需要另一个 for 循环来计算每个单词:
for eachPos in posWords:
for word in readFile:
if eachPos == word:
counter +=1
print eachPos
print counter
我不是 100% 确定您是否可以迭代 readFile,但我肯定您可以或至少可以找到一种方法将其添加到列表As Bartloviej Lewandow 提到使用 readfile.split()。这是一种非常幼稚的做法。
我认为还有另一种方法,您首先计算单词,然后查看它们是否在您的列表中。对于集合和计数器的研究,这对您的项目来说是惊人的!
关于Python情感分析(比较单词时,文本中重复的单词不计算在内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26085711/