意味のある単語にテキストの行を変換しますword_tokenize
ですが、変換できませんでした。どのように私は、文字列のラインを持っている
コンテキスト:PDFファイルをテキストファイルに解析していますpdfコンバータから戻ってきて、pdfをテキストに変換しています。私はPDFminerを使っています。Python
意味のある単語にテキストの行を変換しますword_tokenize
ですが、変換できませんでした。どのように私は、文字列のラインを持っている
コンテキスト:PDFファイルをテキストファイルに解析していますpdfコンバータから戻ってきて、pdfをテキストに変換しています。私はPDFminerを使っています。Python
再帰を使用してこの問題を解決できます。まず、あなたがここに来ることができ、辞書のtxtファイルをダウンロードしたいと思うでしょう:https://github.com/Ajax12345/My-Python-Projects/blob/master/the_file.txt
dictionary = [i.strip('\n') for i in open('the_file.txt')]
def get_options(scrambled, flag, totals, last):
if flag:
return totals
else:
new_list = [i for i in dictionary if scrambled.startswith(i)]
if new_list:
possible_word = new_list[-1]
new_totals = totals
new_totals.append(possible_word)
new_scrambled = scrambled[len(possible_word):]
return get_options(new_scrambled, False, new_totals, possible_word)
else:
return get_options("", True, totals, '')
s = "specificationsinaccordancewithqualityaccreditedstandards"
print(' '.join(get_options(s, False, [], '')))
出力:
'specifications in accordance with quality accredited standards'
これは私が探していたものです、ありがとう、また辞書は動的でもあり、既に見つかった単語を含んでいます –
trie
を使うことができます。 trie
は、単語の検証を可能にするデータ構造です。
これはツリーで、有効なプレフィックスのためにブランチをナビゲートし、完全な世界にヒットしたときに通知を受け取ります。
私はこれを "具体的に"使用したことはありませんが、私はこのpythonの実装であるdatrieを見つけました。
datrie
をインポートしてtxt
辞書(例:here)からtrie
を生成し、その文字列を解析することを考えました。 trie
で一致が見つかったときに文字ごとに文字を読み、合っていない単語を見つけたら分割語の文字列に追加します。
trie
here on wikipediaまたはin this video(これはtrie
が何であるかを教えてくれた人です)で詳細を見つけることができます。
あなたが試すことができ、別のPDFコンバータはありますか?それは、すべての言葉を一緒に詰め込むべきではありません。 – sniperd
あなたはおそらくあいまいさの問題に遭遇するでしょう。例えば、その文字列の最初の単語は "specific"( "at"と "ion"、一意で有効な単語の両方)または "specification"です。 – Zinki
辞書にあるすべての単語を検索することで、強引に挑戦しましたか?あなたはすべての単語と英語の辞書でライブラリを見つけることができます。 – semicolon