22

特定のテキストの言語を検出できる C# ライブラリはありますか? つまり、入力テキスト"This is a sentence"の場合、言語を として検出する必要があります"English"。または"Esto es una sentencia"、言語を として検出する必要があります"Spanish"

テキストからの言語検出は決定論的な問題ではないことを理解しています。ただし、Google 翻訳Bing 翻訳の両方に、入力言語を最適に推測する「自動検出」オプションがあります。できればC#で、公開されている同様のものはありますか?

4

7 に答える 7

32

はい、確かに、TextCat は言語の識別に非常に適しています。そして、さまざまな言語で多くの実装があります。

.Net にはポートがありませんでした。だから私はそれを書いた: NTextCat ( NuGetOnline Demo )。

これは純粋な .NET Standard 2.0 DLL + コマンド ライン インターフェイスです。デフォルトでは、14 言語のプロファイルを使用します。

どんなフィードバックでも大歓迎です!新しいアイデアや機能のリクエストも大歓迎です :)

于 2011-05-23T19:04:13.760 に答える
3

ここで 3grams 分析に基づく C# 実装を見つけてください。

http://idsyst.hu/development/language_detector.html

于 2013-01-30T16:53:46.590 に答える
3

言語の検出はかなり難しい作業です。

一部の言語は、使用されている分音記号と二文字/三文字表記が原因で、他の言語よりもはるかに簡単に検出できます。たとえば、二重鋭アクセントはハンガリー語でほぼ独占的に使用されます。ドットのない i 'ı' はトルコ語のみで使用されており [私が思うに]、t-comma (t-cedilla ではない) はルーマニア語でのみ使用され、eszett 'ß' はドイツ語でのみ使用されます。

いくつかの digraphs、trigraphs、および tetragraphs も良い景品です。たとえば、'eeuw' と 'ieuw' は主にオランダ語で、'tsch' と 'dsch' は主にドイツ語で見つかる可能性が高いです。

より多くの景品には、特定の言語で使用される一般的な単語または一般的な接頭辞/接尾辞が含まれます. 使用されている句読点でさえ、言語を決定するのに役立つ場合があります (引用スタイルや使用法など)。

そのようなライブラリが存在する場合、私は自分で作業しているので、それについて知りたいです。

于 2009-09-23T07:49:41.943 に答える
2

ここでは、バイグラム統計に基づく単純な検出器を使用しています (基本的には、各言語でどのバイグラムがより頻繁に発生するかを大きなセットから学習し、以前に検出された値と比較して、テキストの一部でそれらをカウントすることを意味します)。

http://allantech.blogspot.com/2007/07/automatic-language-detection.html

これは、多くの (ほとんどの?) アプリケーションにとっておそらく十分であり、インターネット アクセスを必要としません。

もちろん、Google や Bing のアルゴリズム (それ自体は優れていません) よりもパフォーマンスが低下します。優れた検出パフォーマンスが必要な場合は、多くのハードワークと膨大な量のデータの両方を実行する必要があります。

もう 1 つのオプションは、アプリがインターネットにアクセスできる場合、Googleまたは Bing API を利用することです。

于 2009-09-23T07:18:56.233 に答える
0

テキスト言語を識別するための簡単なツールがあります: http ://www.detectlanguage.com/

于 2010-04-14T13:24:24.893 に答える
0

「textcat」はこれに非常に役立つことがわかりました。この元の実装に基づいて、PHP実装であるPHP Text Catを使用しましたが、信頼性が高いことがわかりました。ソースを見ると、選択した言語で実装するのはそれほど難しいことではないことがわかります。ハードワーク(特定の言語に関連する文字の組み合わせ)はすべてデータとしてそこにあります。

于 2010-04-14T13:30:15.443 に答える
0

隠れマルコフ連鎖に基づく機械学習アルゴリズムが必要になり、さまざまな言語で大量のテキストを処理します。

次に、未確認のテキストに到達すると、「スコア」が近い言語が勝者になります。

于 2009-09-23T07:11:00.797 に答える