使用wordnet获取单词的引理

时间:2011-07-21 22:39:50

标签: php nlp wordnet lemmatization morphological-analysis

如何使用Wordnet获取给定单词的引理。我似乎无法在wordnet文档中找到我想要的内容。 http://wordnet.princeton.edu/wordnet/man/wn.1WN.html

例如,对于单词“books”,我想获得“book”,ashes => ash,booking =>书,苹果=>苹果......等。

我想在命令行中使用wordnet实现这一点,我无法找到确切的选项来检索这种情况。

一个php解决方案也会有很大的帮助,因为我原本打算使用wordnet php API,但似乎他们网站中的当前版本无效。

4 个答案:

答案 0 :(得分:2)

Morphy是WordNet原生的形态处理器。 WordNet接口调用Morphy将一个单词作为查找过程的一部分进行词形变换(例如,您查询“enlightened”,它会返回“enlightened”的结果,并通过Morphy返回“enlighten”)。

接口不包含允许用户直接访问Morphy的功能,因此只有在使用其中一个WordNet API编写自己的程序时才能在命令行中使用它。您可以在WordNet网站上找到Morphy的documentation

尽管我可以说,PHP interface仍然可用,但您可能需要使用WordNet 2.x.

答案 1 :(得分:2)

如果您可以使用其他工具,请尝试TreeTagger

答案 2 :(得分:1)

我不确定WordNet是否在本地实现它。 NLTK有Morphy,它正是你想要的,但它是用Python实现的。您可以编写一个小型Python程序来从命令行获取输入并返回引理。

在以下链接中搜索“Morphy”: http://nltk.googlecode.com/svn/trunk/doc/api/nltk.corpus.reader.wordnet.WordNetCorpusReader-class.html

nltk.WordNetLemmatizer()也可以胜任。在以下链接中搜索“Lemmatization”: http://nltk.googlecode.com/svn/trunk/doc/book/ch03.html

NLTK网站:http://www.nltk.org/

答案 3 :(得分:0)

nltk库中的WordNetLemmatizer可以满足您的需求。这是python3代码:

eyeMac2016:james$ python3 lemmatize_s.py
This program will lemmatize your input until you ask for it to 'end'.
Type one or more words  (or 'end') and press enter:books ashes
['book', 'ash']
Type one or more words  (or 'end') and press enter:end
eyeMac2016:james$ 

从命令行运行:

<layout xmlns:android="http://schemas.android.com/apk/res/android">

    <data>
        <variable
            name="task"
            type="com.pichardo.improvedtribble.models.Task" />
    </data>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

    </LinearLayout>

</layout>