私の最初のPythonパッケージであるenglishidioms
のリリースを発表できることを嬉しく思います。このパッケージは、22,209のユニークな表現のデータベースを使用して、文の中で英語のイディオム、句、および句動詞を識別するための強力なツールです。
背景:個人の自然言語処理(NLP)プロジェクトの一環として、英語の文章内で慣用表現を認識できるPythonパッケージが必要であることがわかりました。驚いたことに、私は適切な解決策を見つけることができなかったので、私はゼロからそれを構築することにしました。
インストール: PIPを使用してパッケージを簡単にインストールできます: pip install englishidioms
使い方:
>>> from englishidioms import find_idioms
>>> sentence = "The plan didn't work, but I'll give you an a for effort for trying."
>>> results = find_idioms(sentence, limit=1)
>>> print(results)
[{'phrase': '*an A for effort', 'definition': 'acknowledgement for having tried to do something, even if it was not successful. (*Typically: get ~; give someone ~.) _ The plan didn’t work, but I’ll give you an A for effort for trying.'}]
議論
sentence
(str) - 分析したい英語の文(必須)。limit
(int) - 一致ポイント(デフォルト:10)によって順序付けられた結果の最大数。html
(BOOL) - HTMLマークアップのフレーズと定義を返して、辞書からの元のフォーマットを保持します(デフォルト:FALSE)。span
(bool) - 文の一致スパンを返します(デフォルト:false)。entry_range
bool) - デバッグのために辞書の開始/端を返します(デフォルト:false)。entry_id
(bool) - デバッグ用のfrase.jsonの辞書エントリIDを返します(デフォルト:false)。それがどのように機能するか(単純化):
このパッケージは、「アメリカのイディオムと句動詞のMcGraw-Hill Dictionary」にすべての辞書エントリを解析することによって開発されました。 Python-DocxなどのPythonライブラリを使用し、事前定義されたフォーマットを活用することにより、各エントリからキーポイントを抽出しました。これらの重要なポイントは次のとおりです。
定数:慣用式のコアを形成する単語の固定クラス。変数:広く一致させることができる変数クラスの単語。オプションの定数:単一の慣用式内の追加のオプションの単語またはフレーズ。動詞:通常、慣用的なフレーズに先行する動詞。
たとえば、辞書のエントリを検討してください。
* (死んだ)リンガー(誰かのため)図。他の人と非常に密接に似た外観。 (*通常:〜; _彼はチャックのリンガーではありませんか?
このエントリについては、次のことを識別します。
「Find_idioms」メソッドへの呼び出しごとに、検索アルゴリズムは22,209の辞書エントリでこれらの重要なポイントを調べ、文法の変動と語順を考慮して、指定された文と一致します。次に、一致したエントリのリストを返します。
パフォーマンス:
このパッケージを本から40,442文でテストし、91%のケースで正しい一致する辞書エントリを検出しました。さらに、文の処理の平均実行時間は約3秒です。
プロジェクトの詳細
このプロジェクトは、いくつかの重要なステップに分かれています。
1。データの取得:
まず、「アメリカのイディオムと句動詞のMcGraw-Hill Dictionary」からソース材料を入手することから始めます。このリソースのコピーにPDF形式でアクセスできます。
次に、PDFをより使いやすい形式、「Clean-Output.Docx」と呼ばれるDOCXドキュメントに変換します。 2列のレイアウトから単一列のテキストに再フォーマットします。この変換プロセスの技術的な詳細については、このドキュメントでは説明していないことに注意してください。
2。データの準備:
「Clean-Output.docx」からデータを処理および改良し、「phrase.json」に保存するために、一連の12ステップを踏み出します。各ステップは、特定のPythonモジュールによって管理されます。
これらのモジュールを指定された順序で実行して、「frase.json」の最終バージョンを作成することが重要です。これは、「cleanutput.docx」のデータの包括的なデータベースです。 Windows CMDでは、このコマンドを使用して順番に実行できます。
python A_breakitup.py && python A_splitrandom.py && python B_breakitup.py && python C_readit.py && python D_readit.py && python E_tidyup.py && python F_tidyup.py && python FF_manualoverride.py && python G_asterisk.py && python H_hyphenated_words.py && python I_getpatterns.py && python J_getwordforms.py && python K_getexamples.py
3。コア機能:
プロジェクトの中心は、「l_algorithm.py」モジュールです。 「frase.json」を利用して、慣用的な表現と英語の文章を一致させます。このモジュールは、パッケージにとって重要であり、文のイディオム、フレーズ、および句動詞の識別を可能にします。
プロジェクトの中心は、「l_algorithm.py」モジュールで、「Englishidioms」ディレクトリにあります。 「frase.json」を利用して、慣用的な表現と英語の文章を一致させます。 「l_algorithm.py」と「frase.json」を「inglishidioms」ディレクトリに維持することは、二重の目的を果たします。
パッケージサイズの削減:これらのコアコンポーネントを分離することにより、パッケージをディスクスペースの点で小さくします。これは、ユーザーが必須コンポーネントをインストールするだけで、パッケージをより軽量で効率的にする必要があることを意味します。
最小化された依存関係:「l_algorithm.py」および「frase.json」の組み合わせには、パッケージ全体と比較して外部依存関係が少なくなります。これにより、エンドユーザーのインストールプロセスが簡素化され、特定の使用には必要ない追加のライブラリと要件をインストールする必要性が減ります。
「Englishidioms」ディレクトリには、「l_algorithm.py」を実行するために必要な3つの必要なNLTKリソースも含まれています。
この合理化されたアプローチを採用することにより、ユーザーが不必要なオーバーヘッドなしでパッケージのコア機能に迅速かつ簡単にアクセスできるようにします。
4。チェックとテスト:
'l_algorithm.py'のデータ品質と検索アルゴリズムの有効性を確保するために、3つの追加モジュールを使用します。
パッケージを使用しようとしているエンドユーザーには、「l_algorithm.py」と「phrase.json」のみが必要であることに注意してください。他のモジュールは、主に開発中のデータ処理と検証用です。
貢献方法:
プロジェクト全体はオープンソースであり、Githubで利用可能です。コードを自由に調査し、改善を行い、その開発に貢献してください。
免責事項:このPythonパッケージは、ユーザーが「アメリカのイディオムと句動詞のMcGraw-Hill Dictionary」に登場するイディオムと句動詞のコレクションへのアクセスを提供するように設計されています。このパッケージは、辞書の著作権所有者であるMcGraw-Hill Companies、Inc。によって承認または承認されていないことに注意してください。
著作権通知: 「アメリカのイディオムと句動詞のMcGraw-Hill辞書」は著作権で保護された素材であり、その使用はMcGraw-Hill Companies、Inc。によって確立された著作権条件の対象となります。本。
目的の使用:このPythonパッケージは、教育および研究のみを目的としており、個人的な非営利目的の使用を目的としています。商用アプリケーションを対象としたものではありません。
ユーザーの責任:このPythonパッケージを使用することにより、著作権法と元の作業で概説されている使用条件に従わなければならないことを認めます。このパッケージを個人的な非営利目的でのみ使用することが許可されています。このパッケージの出力の商用アプリケーションまたは配布には、出版社であるMcGraw-Hill Companies、Incの事前の書面による同意が必要になる場合があります。著者をサポートし、著作権法を順守するための「アメリカのイディオムと句動詞のマクグローヒル辞書」。
著者のサポート:商業目的でこのパッケージのコンテンツを使用する場合は、McGraw-Hill Companies、Inc。から必要な許可とライセンスを取得して、すべてのイディオムと句動詞にアクセスすることを強くお勧めします。 「アメリカのイディオムと句動詞のMcGraw-Hill Dictionary」の独自の個人的なコピーを購入してください。
責任:このPythonパッケージの作成者とメンテナーは、パッケージの著作権または誤用の侵害について責任を負いません。ユーザーは、このパッケージを使用する際に、すべての法的および著作権要件を順守する責任があります。
著作権所有者と著者の権利を尊重して、このパッケージの倫理的かつ合法的な使用法を奨励します。責任を持って使用してください。