所以,我正在做一个项目,我有一个英文单词列表,并希望它检查我写的单词在列表中并告诉我它是否是英文,我不知道怎么做但是这是我应该这样做的,所以我在寻求你的帮助
text = open("dict.txt","r")
#Opens the dict.txt file I have and reads it
word = input("Type a word to check if it's english.")
#Type in a word to check if is english or not
if(word in text == true):
print(word, "Is in English.")
elif(word in text == false):
print(word, "Is not in English.")
#Check if word is true or false in the dict.txt and print if it is english or not.
答案 0 :(得分:2)
在您的代码中,text
是一个文件对象,您首先需要以某种方式阅读它。例如,您可以将它们读入一组(因为O(1)查找时间):
with open("dict.txt", "r") as f:
text = {line.strip() for line in f} # set comprehension
word = input("Type a word to check if it's english.")
if word in text:
print(word, "Is in English.")
else:
print(word, "Is not in English.")
作为具有NLP背景的人:尝试实际测试单词是否有效英语比您想象的更复杂。使用足够大的字典(也包含变形形式),你应该具有高精度。
答案 1 :(得分:2)
如果您的操作系统使用Linux内核,则有一种简单的方法可以从英语/美国词典中获取所有单词。在目录/ usr / share / dict中,您有一个word文件。还有一个更具体的美国英语和英国英语文件。这些包含该特定语言的所有单词。您可以通过每种编程语言来访问它,这就是为什么我认为您可能想了解这一点。
现在,对于特定于python的用户,下面的python代码应该将列表单词分配为具有每个单词的值:
import re
file = open("/usr/share/dict/words", "r")
words = re.sub("[^\w]", " ", file.read()).split()
def is_word(word):
return word.lower() in words
is_word("tarts") ## Returns true
is_word("jwiefjiojrfiorj") ## Returns False
希望这会有所帮助!