【问题标题】:How is Morpha Lemmatizer Used?如何使用 Morpha Lemmatizer?
【发布时间】:2009-06-18 15:01:43
【问题描述】:

我打算使用 WordNet 的 SQL 版本,但我在寻找一种方法来对单词进行词形还原以便在数据库中找到它们时遇到了问题;我不能使用 WordNet lemmatizer 本身,因为它应用于 WorldNet 的文本版本。

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

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

【问题讨论】:

  • +1 教我一个新词(和概念)

标签: lemmatization


【解决方案1】:

UW 有uploaded morpha stemmer to Maven central。有一个包装器使它更易于使用。您只需将其添加为依赖项并使用 edu.washington.cs.knowitall.morpha.MorphaStemmer 类。实例是线程安全的(原来的 JFlex 不必要地有局部变量的类字段)。实例化一个类并运行 morpha 和你想要的词。

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

【讨论】:

    【解决方案2】:

    Minnen et al's paper on Morpha 可能是开始了解词形还原器如何工作的好地方。我自己已经有一段时间没有使用它了,但我很确定它就像一个现成的二进制文件一样工作。

    根据性能,您可能需要事先对您的术语进行 POS 标记,但这与查询 WordNet 时遇到的问题大致相同,因此听起来您需要以任何一种方式爬上这座山。

    在查询 Wordnet DB 时,您基本上会使用根表单,但如果您只是为此使用它,我强烈建议您尝试使用专为 Wordnet 设计的 Morphy 词干分析器,它可以可靠地匹配到其中列出的根形式。

    【讨论】:

      【解决方案3】:

      您可能还想查看 TTT2,这是一种 NLP 管道,可单独或单独进行标记化、词形化等。易于使用且有据可查: http://www.ltg.ed.ac.uk/software/lt-ttt2

      【讨论】:

        【解决方案4】:

        您现在一定已经找到了答案,但对于任何可能偶然发现这篇关于 Morpha 的帖子的人来说:

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

        但这需要先安装flex,解压编译(我使用的是下面的Linux终端命令行):

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

        然后将当前工作目录改成flex并make:

        ./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

        希望对你有帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-10-03
          • 2017-01-11
          • 1970-01-01
          • 1970-01-01
          • 2016-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多