首页 > 解决方案 > 检测语言并与单词列表进行比较

问题描述

当我将其放入检测语言的代码中时,我的代码中的集合不起作用。

我拥有的代码旨在检测语言(它是'de'并且被正确检测到),然后如果语言是'de',它会将文件中的单词与另一个文件中的单词进行比较。

当我将这些代码作为单独的代码时,它们都可以工作,但是当我将它们放在一起时,输出是错误的。

预期输出为{'mehr', 'Angebot'}实际输出为set()

代码:

from langdetect import detect

f = open("4.txt", mode="r", encoding="utf-8")
read = f.read()

lang = detect(read)

#print(lang)

if lang == 'de':
    de = open("positive_words_de.txt")

    words1 = f.read().split()
    words2 = de.read().split()
    words = set(words1) & set(words2)
    print(words)

f.close()
de.close()

这是文件 4.txt 上的文本

Re: stuttgarter-zeitung.de Bei der Bahn bekomme ich für mehr Geld mehr Service. Ich bin zuversichtlich, dass ein kleines Unternehmen sich um ein gutes Angebot für Ihre Kunden kümmern werden. Wir werden sehen...

文件 positive_words_de.txt 中的单词只是德语中具有积极从属关系的单词列表,两个单词与 4.txt 文件中的单词匹配,如上所述。

标签: pythonset

解决方案


所以问题出在这一行:

words1 = f.read().split()

如果我删除read = f.read()或更改words1 = f.read().split()代码words1 = read.split就可以了。words1当我运行原始代码时是一个空列表。


推荐阅读