問題: 提供されたテキスト ファイルから、文の複雑さを考慮して文のリストを取得します。略語で使用されるピリオドなどの言語数値。
非効率な正規表現:
re.compile('(\. |^|!|\?)([A-Z][^;↑\.<>@\^&/\[\]]*(\.|!|\?) )',re.M)
自然言語ツールキット (NLTK) を使用した解決策:
NLTK が提供する以下に示すように、文のトークン化のための堅牢なソリューションコード:
import nltk.data # Load the English sentence tokenizer tokenizer = nltk.data.load('tokenizers/punkt/english.pickle') # Read the text file with open("test.txt") as fp: data = fp.read() # Tokenize the text into sentences sentences = tokenizer.tokenize(data) # Print the tokenized sentences, separated by newlines print('\n-----\n'.join(sentences))
NLTK ソリューションの利点:
以上がNLTK はどのようにしてテキストから文を効率的に抽出し、複雑な言語上のニュアンスを処理できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。