2

大規模なプロジェクトの一環として単語の意味の曖昧さを解消 する必要があり、WordNet.Net に出会いました。ダウンロードで WordsMatching プロジェクトに付属している wordsensedisambiguator クラスを使用しようとしました。これが私のコードです。

        string sent = "We have investigated the inductions of the IE genes in response to calcium signals in Jurkat cells (in the presence of activated p21(ras)) and their correlated consequences.";
        Tokeniser tok = new Tokeniser();
        tok.UseStemming = true;
        string[] words = tok.Partition(sent);

        if (words.Length == 0) return null;

        MyWordInfo[] wordInfos = new MyWordInfo[words.Length];

        for (int i = 0; i < words.Length; i++)
        {

            WnLexicon.WordInfo wordInfo = WnLexicon.Lexicon.FindWordInfo(words[i], true);

            if (wordInfo.partOfSpeech != Wnlib.PartsOfSpeech.Unknown && wordInfo.text != string.Empty)
            {

                words[i] = wordInfo.text;

                Wnlib.PartsOfSpeech[] posEnum = (Wnlib.PartsOfSpeech[])Enum.GetValues(typeof(Wnlib.PartsOfSpeech));

                for (int j = 0; j < posEnum.Length; j++)
                {
                    if (wordInfo.senseCounts[j] > 0) // get the first part of speech
                    {
                        wordInfos[i] = new MyWordInfo(words[i], posEnum[j]);
                        break;
                    }
                }
            }
        }

        WordSenseDisambiguator wsd = new WordSenseDisambiguator();
        wordInfos = wsd.Disambiguate(wordInfos);

結果を表示すると、すべての単語のセンスはまだ「0」です:(以前にこれを使用したことがある人はいますか、WordSenseDisambiguatorの操作方法を理解できる人はいますか?お急ぎの回答をお待ちしております:)

4

1 に答える 1

6

WordNet::SenseRelate::AllWords を試してみるとよいでしょう。これは、WordNet を使用してすべての単語のあいまいさを判断します。

http://senserelate.sourceforge.net

次の Web インターフェイスから試してみてください。

http://marimba.d.umn.edu

于 2011-08-22T14:19:53.277 に答える