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やその他のコーディング言語に慣れていません(私はHumanitiesから来ています)ので、私が探している問題を検索する方法については完全にはわかりませんこの質問が重複しているか、簡単に解決されている場合は謝罪します。
私は様々な文法形式でフランス語の単語のリストを見つけることでこれにアプローチしようとしました。私はすでにリストを2つの別々のリストにまとめました。最初のリストには、他の人が受けたい単語のルートが含まれています.2番目のリストは、最初のリストのアイテムが取ることができるバリアントフォームです。私は両方のリストがお互いに対応するようにしました。たとえば、list_1[0]
は、list_2[0]
の単語に対応します。その結果、list_2には異なる長さのネストされたリストがたくさんあります。
ネストされたリストを検索しているときに問題が発生しているようです。 を繰り返して、の単語が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
このエラーを避けるために、既にネストされたリストをどのように循環させるかはわかりません。私は、定義を2度目に検索すると、複数の項目としてネストされたリストが表示されないと仮定しています。私はこれを元のものにチェックした後に別のリストの理解を試みることでこれを回避しようとしましたが、個々の文字を返すことになります。私はまた、これらの2つのリストを辞書にすることを試みましたが、.keys()
をどのように産出するかを把握できないようです。.values()
からです。
あなたは本当にこのようなネストされたリストを使用したくありません! 'dict'を使ってください! –