from nltk import word_tokenize
list_1 = [a, b, c, d, e, f]
list_2 = [[aa, bb, cc], [dd, ee], [ff], [gg, hh, ii, jj], [kk, ll], [mm, nn, oo]]
text = 'The lazy aa moves along the hh'
text_token = word_tokenize(text)
for word in text:
if word in [j for i in list_2 for j in i]:
print(list_2.index(word))
else:
print(word)
ValueError: 'hh' is not in list
我试图对法文文本的大型机构进行文本分析。我已经尝试过使用NLTK Stemmer,它并没有阻止我分析的大量词汇。通过嵌套列表搜索
我对Python或任何其他编码语言(我来自人文科学)并不是很熟悉,所以我也不完全确定如何搜索我正在寻找的问题,如果这个问题是多余的或者很容易解决的,我对此表示歉意。
我试图通过找到一个法语单词列表与他们的各种语法形式来解决这个问题。我已经将列表编入两个单独的列表中:第一个列表包含我希望其他人采用的单词的根,而第二个列表是第一个列表中的项目可以采用的变体形式。我已经做到这一点,以便两个列表相互对应。例如,list_1[0]
将对应于list_2[0]
中的字词。因此,list_2中有很多不同长度的嵌套列表。
当我通过嵌套列表进行搜索时,似乎出现了我的问题。我必须遍历text_token
以检查中的任何字是否存在于list_2
中。如果在list_2
中存在text_token
,则查找misc = list_2.index(word)
。找到misc
后,我想用搜索list_1[misc]
替换单词。但是,在确认list_2
中存在单词之后,我尝试使用print(list_2.index(word))
来查看它是否正常工作,但我仍然收到ValueError: 'hh' is not in list
我不完全确定如何在已经这样做之后通过嵌套列表循环以避免此错误,因为我假设当我再次搜索定义时,它不会将嵌套列表看作多个项目。我试图通过在原始文件中检查后尝试另一个列表理解来避免这种情况,但最终会返回单个字母。我也尝试将这两个列表放入字典中,但我似乎无法弄清楚如何从.values()
产生.keys()
。
你真的不想使用这样的嵌套列表!使用'dict'! –