
単語形式は、英語の単語のすべての可能なフォームを正確に生成できます。動詞を共役させることができます。それは、名詞などのスピーチのさまざまな部分を形容詞に、形容詞から副詞に、言語を動詞に接続することができます。単数名詞を複数化できます。これはすべて1つの関数で行います。楽しむ!
いくつかの非常にタイムリーな例:P
> >> from word_forms . word_forms import get_word_forms
> >> get_word_forms ( "president" )
> >> { 'n' : { 'presidents' , 'presidentships' , 'presidencies' , 'presidentship' , 'president' , 'presidency' },
'a' : { 'presidential' },
'v' : { 'preside' , 'presided' , 'presiding' , 'presides' },
'r' : { 'presidentially' }}
> >> get_word_forms ( "elect" )
> >> { 'n' : { 'elects' , 'electives' , 'electors' , 'elect' , 'eligibilities' , 'electorates' , 'eligibility' , 'elector' , 'election' , 'elections' , 'electorate' , 'elective' },
'a' : { 'eligible' , 'electoral' , 'elective' , 'elect' },
'v' : { 'electing' , 'elects' , 'elected' , 'elect' },
'r' : set ()}
> >> get_word_forms ( "politician" )
> >> { 'n' : { 'politician' , 'politics' , 'politicians' },
'a' : { 'political' },
'v' : set (),
'r' : { 'politically' }}
> >> get_word_forms ( "am" )
> >> { 'n' : { 'being' , 'beings' },
'a' : set (),
'v' : { 'was' , 'be' , "weren't" , 'am' , "wasn't" , "aren't" , 'being' , 'were' , 'is' , "isn't" , 'been' , 'are' , 'am not' },
'r' : set ()}
> >> get_word_forms ( "ran" )
> >> { 'n' : { 'run' , 'runniness' , 'runner' , 'runninesses' , 'running' , 'runners' , 'runnings' , 'runs' },
'a' : { 'running' , 'runny' },
'v' : { 'running' , 'run' , 'ran' , 'runs' },
'r' : set ()}
> >> get_word_forms ( 'continent' , 0.8 ) # with configurable similarity threshold
> >> { 'n' : { 'continents' , 'continency' , 'continences' , 'continent' , 'continencies' , 'continence' },
'a' : { 'continental' , 'continent' },
'v' : set (),
'r' : set ()}ご覧のとおり、出力は4つのキーを備えた辞書です。 「r」は副詞の略、「形容詞のための「n」、動詞の「v」を表します。 「R」が副詞の略である理由を私に聞かないでください。これがWordNetが使用するものなので、これが私もそれを使用する理由です:-)
以下を入力することにより、いつでもヘルプを取得できます。
> >> help ( get_word_forms )自然言語の処理と検索では、「実行」や「ラン」、「愛」、「愛すべき」、「政治家」、「政治」などの言葉を同じ言葉と扱う必要があります。これは通常、各単語を基本単語にアルゴリズム的に削減し、ベースワードを比較することによって行われます。このプロセスはステムと呼ばれます。たとえば、ポーターのステムマーは、「愛」と「素敵」の両方を基本的な「愛」に減らします。
ステムマーにはいくつかの欠点があります。第一に、Stemmerによって作成されたベースワードは、必ずしも有効な英語の単語ではありません。たとえば、ポーターステムマーは「操作」という言葉を「操作」に減らします。第二に、ステムマーの誤ったネガティブ率が高い。たとえば、「run」は「run」に縮小され、「実行」は「実行」に縮小されます。これは、ステマーが基本的な単語を見つけるために一連の合理的なルールを使用しているために起こり、私たち全員が知っているように、英語は常に非常に合理的に動作するとは限りません。
レマティザーは、辞書に存在するベースフォーム(補題とも呼ばれます)を生成するため、ステマーよりも正確です。したがって、単語の縮小は常に有効な英語の単語です。ただし、スピーチのさまざまな部分にわたって単語を接続するのがそれほど得意ではないため、lemmatizersにも誤ったネガがあります。 NLTKに含まれるWordNet Lemmatizerは、そのようなほぼすべての例で失敗します。 「操作」は「操作」に削減され、「操作」は「動作」に削減されます。
単語形式は、特定の英語の単語のすべての可能なフォームを見つけることにより、この問題を解決しようとします。動詞の活用を実行し、名詞形式を動詞形式に接続し、形容詞形式、副詞形式、複数形の特異形式などに接続できます。
また、 word_formsに基づいた非常にシンプルなlemmatizerも提供しています。これがそれを使用する方法です。
> >> from word_forms . lemmatizer import lemmatize
> >> lemmatize ( "operations" )
'operant'
> >> lemmatize ( "operate" )
'operant'楽しむ!
Python 3でテストしました
pipの使用:
pip install -U word_forms
または、ソースからインストールできます。
git clone https://github.com/gutfeeling/word_forms.git
pipまたはsetup.pyを使用してインストールします pip install -e word_forms
% or
cd word_forms
python setup.py install
こんにちは、私はディビアです、そして私はこのリポジトリを維持しています。私はあなたから聞いてみたいです。 [email protected]でお気軽にご連絡ください。
単語形式は完璧ではありません。特に、いくつかの側面を改善できます。
このパッケージが気に入ったら、お気軽に貢献してください。あなたのプルリクエストは大歓迎です。