Morpha Lemmatizer如何使用?

时间:2009-06-18 15:01:44

标签: lemmatization

我打算使用WordNet的SQL版本,我在找到一种方法来对词汇进行词形排列以便在数据库中找到它们时遇到了问题;我无法使用WordNet lemmatizer本身,因为它适用于WorldNet的文本版本。

我在这里读到有一个很好的变形器可以返回真正的单词 - 而这正是我所需要的。我下载了“Morpha”,建议的变形器,但我不明白如何使用它。

  • 是否需要编辑?
  • 我应该使用哪个文件?
  • 如何在访问WordNet SQL DB的应用程序中使用它?

4 个答案:

答案 0 :(得分:1)

威斯康星大学有uploaded morpha stemmer to Maven central。有一个包装,使它更容易使用。您只需将其添加为依赖项并使用edu.washington.cs.knowitall.morpha.MorphaStemmer类。实例是线程安全的(原始JFlex不必要地具有局部变量的类字段)。实例化一个类并运行morpha和要阻止的单词。

new MorphaStemmer().morpha("climbed") // goes to "climb"

答案 1 :(得分:0)

Minnen et al's paper on Morpha可能是开始理解变形器如何工作的好地方。我已经有一段时间了,因为我自己有过这方面的经验,但我很确定它只是作为一个现成的二进制文件。

根据性能的不同,您可能需要预先对自己的条款进行POS标记,但这与您查询WordNet的问题大致相同,所以它开始听起来像是您需要以任何方式攀登该山峰。

在查询Wordnet数据库时,您基本上会使用根表单,但如果您只是为此使用它,我建议您尝试使用专为Wordnet设计的Morphy stemmer,并且可以匹配到其中列出的根表格。

答案 2 :(得分:0)

您也可以查看TTT2,这是一种NLP管道,它可以一个或一个地进行标记化,词形化等。易于使用且记录良好: http://www.ltg.ed.ac.uk/software/lt-ttt2

答案 3 :(得分:0)

您现在必须已经找到答案,但是对于任何可能偶然发现有关Morpha的帖子的人:

您可以直接从以下位置下载Morpha: http://www.informatics.susx.ac.uk/research/groups/nlp/carroll/morph.html

但这需要首先安装flex,然后解压缩和编译(我在下面使用Linux终端命令行):

tar -xzf flex-for-morph.tar.gz

然后将当前工作目录更改为flex并使其:

./configure
make

如果make命令给出以下错误:

make:yacc:找不到命令 Makefile:105:目标“ parse.c”的配方失败 make:*** [parse.c]错误127

这意味着它无法获得yacc;因此您需要通过命令行安装野牛:

sudo apt-get install bison

现在再次运行make命令,它应该在最后一行为您提供类似的内容:

gcc -g -O -o flex  ccl.o dfa.o ecs.o gen.o main.o misc.o nfa.o parse.o scan.o skel.o sym.o tblcmp.o yylex.o  libfl.a 

现在您可以编译Morpha(从上面的链接下载了):

../flex-2.5.4/flex -i -Cfe -8 -omorpha.yy.c morpha.lex
gcc -o morpha morpha.yy.c

Morpha将已经带有POS标签的文件作为输入。要对单个文件进行lemmatise,请使用:

./morpha -t  < ~/path to your file/yourfile.tag

上面的-t选项还会打印POS标签以及经过修饰的表格;要使用区分大小写的选项,请使用-c,对于两个选项,请一起使用-ct

希望有帮助!