0

私は、ユーザーが一連の単語(通常は10未満)を提供するC#アプリケーションに取り組んでおり、これらの単語のすべての同義語を取得する必要があります。辞書などを扱うのはこれが初めてです。従う手順と、アプリケーションと統合できる同義語を提供する既存の辞書があるかどうか、または使用できるオープンソースアプリケーションまたはコードがあるかどうかを知る必要があります。

4

2 に答える 2

1

あなたの最初の質問に答えるために。シソーラスのダウンロードはここにあります:http ://wordpresscloaker.com/blog/download-free-english-thesaurus-format-txt.html

私は、そのファイルの品質、正確性、合法性、使用ライセンス、または完全性を約束しません。しかし、これはあなたをあなたの道に連れて行くでしょう。mthesaur.txtを抽出して、プロジェクトフォルダーに追加する必要があります。

次に、次のようにしてテキストファイルを読み込む必要があります。

var reader = new StreamReader(File.OpenRead(@"C:\mthesaur.txt"));
var dict = new Dictionary<string, string>();
while (!reader.EndOfStream)
{
    // Read the file line by line.
    var line = reader.ReadLine();

    // If the line isn't null, we can use it.  This shouldn't happen but it is a good sanity check.
    if (line == null) continue;
    // Split the line by the delimiter (a comma) so we can get the main word, the first one on the line.
    var splitLine = line.Split(',');
    var mainWord = splitLine[0];
    // To save us from having to loop through and only get the indexes above 0 (eg, skip the main word) we will just simply remove it from the line so we have just synonyms.
    line = line.Replace(mainWord + ",", string.Empty);
    // Now we make use of the dictionary type in C# and add the mainword as the key and the synonyms as the value.
    try
    {
        dict.Add(mainWord, line);
    }
    catch (ArgumentException argEx)
    {
        Console.WriteLine("Attempted to add {0} to the dictionary but it already exists.", mainWord);
    }
}

これで、C#のキー/値辞書にすべてが含まれるようになりました。LINQを使用して、入力した単語の同義語をクエリできます。これは、辞書からのすべてのキー値を含むドロップダウン(これは非常に大きなドロップダウンであり、ユーザーにとってナビゲートするのが難しいため、お勧めしません)、リストボックス(より良く、ナビゲートしやすい)、またはプレーンテキストの検索ボックス。ここではユーザーのGUIの処理について何も説明されていないため、これで質問に完全に答えることはできませんが、これでうまくいくはずです。

于 2013-03-10T23:02:09.373 に答える
0

SQL全文検索または基盤となるテクノロジであるMicrosoftSearchServer(無料のExpress SKUがあります)を使用している場合は、複数の言語やその他の自然言語処理ツール用のシソーラスが見つかります。もちろん、宿題ではなく、実際のプロジェクトに取り組んでいると思います...

オープンソースにもっと興味があるなら、 Lucene.netをチェックしてください-それは検索エンジンを提供します、そして私はそれがthesaurを持っているとかなり確信しています

于 2013-03-10T23:07:17.327 に答える