我是一个两天大的胎儿,当谈到Python和一般编程时,所以我需要一些指导。基本上,我正在尝试编写一个函数,该函数将遍历文档列表,并计算特定关键字及其同义词出现的次数。你知道吗
作为参考,代码中的“Entry”是指一类具有“word”和“synonyms”属性的对象。同义词库是一个条目对象列表,语料库是一个文档列表,每个文档都是一个字符串列表。你知道吗
我做到的是: 第2-6行涉及创建一个包含关键字及其同义词的列表,即所有单词。 第7-12行就是问题所在。我只能得到输出所有单词中第一个搜索单词及其出现次数的函数。你知道吗
def search(keyword) : #user inputs keyword
All_words = [keyword]
for Entry in Thesaurus:
if Entry.word == keyword:
for Word in Entry.synonyms:
All_words.append(Word)
for Search_word in All_words:
count = 0
for Document in Corpus:
for Word in Document:
if Search_word == Word:
count = count + 1
return Search_word, count
input = "sad"
output = search(input)
print(output)
作为参考,如果关键字为“sad”,则所有的\u单词应为:[“sad”、“心烦”、“沮丧”、“不开心”] 我目前的结果是:
('sad', 4)
我希望结果是这样的:
(('sad', 4), ('upset', 2), ('depressed', 2), ('unhappy', 0))
我觉得我错过了一些简单的东西。你知道吗
问题是返回语句
return Search_word, count
在for
循环中。因此,在它完成对第一个单词的搜索之后,在本例中是sad
,它将立即return
并停止执行。你知道吗您必须将
return
语句移到for
循环之外运行,并稍微更改它,以便它输出您正在搜索的所有单词的结果。你知道吗另外,只是样式变量名不应该以大写字母开头。你知道吗
至于如何存储所有不同的同义词及其对应的计数,请参见以下内容:
相关问题 更多 >
编程相关推荐