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'! –