要約:この記事は、FreeMdict とGoldenDictのメンテナである xiaoyifang による Hunspell に関する議論です。
形態素辞書は EPWING(hunspell)と連携しませんが、これを修正する方法はありますか?私はすでに元の goldendict の GitHub に問題を開いています。xiaoyifang のフォークに別の問題を開くべきでしょうか?
機械翻訳:
形態学辞書は EPWING(hunspell)と一緒に機能しませんが、これを修正する方法はありますか?私はすでに元の goldendict の GitHub に問題を開いています。xiaoyifang のフォークに別の問題を開くべきでしょうか?
申し訳ありませんが、問題はすでに修正されましたが、以下の点を説明したいと思います:goldendict の hunspell 機能の推論結果は、拡張子が.dic のファイルに収録された単語によって決定され、読み込まれない辞書には影響されません。
また、欧路辞典の Android 版のメカニズムは異なり、ユーザーが読み込む辞書に影響を受けます(あなたの疑念はこのソフトウェアにおいては成立します)。
さらに、私は日本語が英語のように完全にクリップボードで単語を調べることができるようになるには、いくつかの問題が hunspell では(おそらく)解決できないと考えています —— 日本語の形態変化は英語よりもはるかに複雑であり、日本語には独特のレイアウトルールがあるため、私は特に『日本語非辞書形辞典』を作成しました。これらの投稿とそのディスカッションエリアを参照して、いくつかの概要を理解することができます:
ここでは日本語の形態変化の特徴について述べています
https://forum.freemdict.com/t/topic/11523
ここでは日本語独自のレイアウトルールについて述べています
https://forum.freemdict.com/t/topic/14241/17
もしもっと知りたい場合は、私は時間を見つけて、システマティックかつ詳細に日本語の特異性について説明する記事を整理します(おそらく 1 ヶ月ほどかかるでしょう。整理ができ次第、特にお知らせします)。
もし可能であれば、GoldenDict が上記の問題をネイティブに処理できることを望んでいます。ここで言及した方法 [https://forum.freemdict.com/t/topic/14241] を使用せずに —— スクリプトや Quicker などのツールを介して実現するのではなく。
ブラックブックスタイル#
日本語に不慣れですが、ここに関係がありますか?
中国の日本語学習者とはあまり関係がないと思います。あなたが指摘している部分は主に日本語のローマ字(あなたがそれをピンインと考えても良い、すべて西文字です)に影響を与えます。
具体的には、処理するものは中国語における一般的な簡体字ピンイン方式とウェイトマクピンイン方式の違いに似ています。これを有効にすると、結果は次のようになります:
Tsinghua University は Qinghua University に処理され、
Tsingtao は Qingdao に処理され、
Peking University は Beijing University に処理されます
(これらの例はあまり厳密ではないかもしれません。なぜなら、一部の綴り方は現在の普通話に基づいていないからです)
つまり、主にローマ字(または西文字)の綴り方の違いを解決するものです。中国の日本語学習者は、ローマ字(例えば taberu)を使って単語を調べることはほとんどなく、一般的には仮名(例えばたべる)や漢字(例えば食べる)を使って調べますが、私は一部の外国人が設計した辞書サイトで彼らがローマ字を使って調べることをサポートしているのを見たので、そのような機能があるのです(しかし、中国人はおそらく使わないでしょう)。
私が解決したい問題は、英語の時制によって引き起こされる問題に似ています。例えば、以下のようなものです:(比較と説明を容易にするために、例文は私が作成したものです)
私はご飯を食べている(私は夕食を食べています)
I am having dinner
私はご飯を食べていた(その時、私は夕食を食べていました)
I was having dinner
私はご飯を食べた。(私は夕食を食べました)
I had dinner。
私はご飯を食べなかった(私は夕食を食べませんでした)
I didn't have dinner。
母親は私をご飯を食べさせる。(母は私に夕食を食べさせます)
Mom lets me have supper
母親は私をご飯を食べさせない。(母は私に夕食を食べさせません)
Mom won't let me have dinner。
太字の部分は 2 つの言語における動詞(また、通常の構成法機能で区別すべき部分)であり、英語では異なる意味を表現する際に、形態変化が 1 つの動詞に連続して発生することはありません(したがって、動詞の変形ははるかに少なく、3 種類だけです)。一方、日本語では異なる意味を表現する際に、形態変化が動詞に多重にネストされます(したがって、上記の各文は新しい変形であり、これ以上のものもあります)。これにより、日本語の構成法ファイルは非常に複雑になるため、私は他の解決策を試みたいと思いました。
私の解決策はあまり学術的ではありません(太字の部分は私が提案した方法で区別すべき部分です):
私はご飯を食べている(私は夕食を食べています)
I am having dinner
私はご飯を食べていた(その時、私は夕食を食べていました)
I was having dinner
私はご飯を食べた。(私は夕食を食べました)
I had dinner。
私はご飯を食べなかった(私は夕食を食べませんでした)
I didn't have dinner。
母親は私をご飯を食べさせる。(母は私に夕食を食べさせます)
Mom lets me have supper
母親は私をご飯を食べさせない。(母は私に夕食を食べさせません)
Mom won't let me have dinner。
見ると、食べるのるという最後の仮名には一定の重複があるため、私は語尾の最後の仮名の変形を列挙して mdx ファイル(すなわち「日本語非辞書形辞典 v1」と「日本語非辞書形辞典 v2」)を作成しました —— 食べら、食べり、食べれ、食べさ、食べま、食べろなどのエントリはすべて食べるを指し、次に「日本語非辞書形辞典 v3」で Python と JavaScript を使用して列挙ルールに基づいて 2 つのスクリプトを作成し、元の形を逆推導し、「日本語非辞書形辞典 v2」の結果と照合しました。(左右の相互作用の技術ですが、一定の検証価値もあります)
以上のように、私の考えを実践に移し、6 ヶ月間の実際のテストを経て(フォーラムでフィードバックを受けました)、重大な問題は発見されませんでした。したがって、次にサラ辞書に PR を提出し(コミュニケーションが少し楽になるため、また、私は goldendict で使用されている C++ と C を理解していないため)、実際の効果を観察します。
あまり役に立たない参考:平文式ローマ字 - ウィキペディア、自由の百科事典 (wikipedia.org)
Mecab#
日本語の形態学的解析、例えば基本形の抽出については、業界には既存のライブラリがあります。現在見られる最も人気のあるいくつかのオープンソースライブラリはすべて、辞書(ipadic/unidic)に基づく解析であり、カスタムルールを使用した解析も見られますが、辞書に基づいて機械学習された結果です。手書きのルールによる解析には何か問題があるでしょうか?できればもっと大きなサンプルでテストしてください:https://clrd.ninjal.ac.jp/unidic/
(削除しても無駄です。私はすでにメールでアーカイブしています)
あなたが推薦したそのツールは、記事を分析するためのものであり、単語を調べるために設計されたものではないと思います。両者には一定の違いがあります(例えば、単語を調べるとき、文脈が基本的に失われること;また、単語を調べるテキストはクリーンアップされておらず、特別な前処理が必要です)。
しかし、私たちは彼らの処理の詳細を参考にして、一定の修正を行うことができます(分割などは気にしなくて良いです。私たちは分割後の推導プロセスにのみ注目すれば良いのです)。
以下は私が半分作成したノートで、皆さんに少しアイデアを提供します(計算機科学の専門家ではなく、Python しか知らないので、皆さんを誤解させないでください):
開発者は他の言語のソースコードを提供しています。こちら(ただし、ゆっくり下にスクロールするしかなく、検索できないのはどういうわけか……)
しかし、ダウンロード後、ファイルがあまりにも小さいことに気づきました。
3 つの Python ファイルで日本語の NLP が実現できるのか?233、やはりパッケージ化された exe を呼び出す必要がある(でも、私は処理の詳細を研究したいので、バイナリコードを読むわけにはいかない……)…… さらに、python2 の文法を使用しています……
だから、さらに研究を進めることはありませんでした。
また諦めずに別のものを探しました:
(SamuraiT/mecab-python3: mecab-python. you can find original version here //taku910.github.io/mecab/)
非公式のインターフェースで、Python インターフェースを提供していますが、実際の処理プロセスも(おそらく)Python ではありません。
大サンプル検証について#
私はコードを書きたくないし、他の人にコードを書かせたくないので削除しました。現代の検索エンジンは基本的にこのセットの辞書と形態学的分析ツールを使用していますが、クライアント側で使用するには適していません。あなたが改善を要約するのは素晴らしいですが、できれば大サンプルでテストするのが最善です。そうすれば、クライアント側の開発者も使用する自信が持てます。
はい、私はあなたの意見に同意します。大サンプルで検証する必要があります。単に人工的に収集するのは遅すぎます(実際には、このアイデアを持ち始めてから、意識的に変形を収集し始めたのは 2 年前のことですが、6 ヶ月前に実際に手を動かし始めてから、まだ多くのものを見逃していることに気づきました)。
あなたが推薦した mecab では、分割結果に 2 列のデータがあれば、検証比較に使用できますが、私の手元にはまだ分割コーパスがないので、以前は簡単に説明しただけです。
[ ] Mecab の分割コーパスを持っている方は、[email protected]まで送信してください。必要なのは
書字形
と書字形基本形
の 2 列のデータだけです。感謝します:)
2 ヶ月が経過しましたが、やはり一つのファイルも受け取っていません(もしかしたら、特別にスレッドを立てるべきかもしれません 233)。
しかし、私は古いコンピュータを見つけましたので、後で時間を見つけて分割コーパスを作成し、国慶節から大サンプル検証を開始する予定です。