【问题标题】:find the root word of a word找到一个词的根词
【发布时间】:2011-07-23 23:20:38
【问题描述】:

我需要建立一个 php 字典,它会找到一个词的根词。 前任。搜索“汽车”,它会告诉“汽车是汽车的复数” 或者“take”,是“take的过去式”

我正在考虑使用 Wordnet,但它似乎很复杂。

有什么建议吗?我绝望了

问候;

【问题讨论】:

  • 这个范围很广。您的问题是关于构建字典的哪个方面?使用 3rd 方服务可能是一个不错的选择,因为在您找到可行的解决方案之前,这可能会变得非常复杂。
  • 是的,我也在考虑第三方服务,如谷歌翻译和雅虎翻译。但这会很慢,因为每次都向 Google 提出请求并返回给我。并且对每天的请求有限制,例如每天 5000 个请求。我正在研究 PSpell 和 Enchant,希望这可以帮助我。

标签: php dictionary wordnet


【解决方案1】:

好吧,由于建议的词干分析器不适合你,你可以从这里选择一些更适合你的:

http://snowball.tartarus.org/

这里还有一些有趣的库:http://sourceforge.net/projects/nlp/

还链接到 StackOverflow 上的类似问题:

NLP programming tools using PHP?

Text mining with PHP

更新: How do I do word Stemming or Lemmatization?

http://www.reddit.com/r/programming/comments/8e5d3/how_do_i_programatically_do_stemming_eg_eating_to/

http://www.nltk.org/

Wordnet 词形还原器:http://wordnet.princeton.edu/wordnet/download/

【讨论】:

  • 感谢 FratalizeR!我认为我的问题在于 lemmatizer。 Stemmer 帮不了我。它需要字典才能在不规则的情况下工作。例如,苍蝇 -> 飞行,采取 -> 采取,老鼠 -> 鼠标。只有字典检查才能正确解释这一点
  • 好的,我为你添加了更多链接。
【解决方案2】:

嗯,这是一个词干扩展(我相信这就是你想要的): http://pecl.php.net/package/stem

但是,它不对作品进行任何语法分析。

这里是 php-only 版本:http://www.chuggnutt.com/stemmer.php

【讨论】:

  • 感谢 FractalizeR!这就是我想要的!在查看词干分析器后,我认为所有单词及其关系的数据库(例如,take、take->take、take->take、mice->mouse、cars->car、...)对于我,因为它只是在数据库中查找。有什么建议吗?
  • 给定“flies”这个词,Porterstemmer 的答案是“fli”,给定“taken”,porterStemmer 给我“taken”... 它似乎适用于常规情况,但不适用于不规则情况
【解决方案3】:

您可以在这里试用免费的 Lemmatizer API:http://twinword.com/lemmatizer.php

向下滚动以找到 Lemmatizer 端点。

这将允许您将“狗”变为“狗”,将“能力”变为“能力”。

如果你传入一个名为“text”的 POST 或 GET 参数,并带有类似“walked plants”这样的字符串:

// These code snippets use an open-source library. http://unirest.io/php
$response = Unirest\Request::post("[ENDPOINT URL]",
  array(
    "X-Mashape-Key" => "[API KEY]",
    "Content-Type" => "application/x-www-form-urlencoded",
    "Accept" => "application/json"
  ),
  array(
    "text" => "walked plants"
  )
);

你会得到这样的回应:

{
  "lemma": {
    "plant": 1,
    "walk": 1
  },
  "result_code": "200",
  "result_msg": "Success"
}

【讨论】:

    猜你喜欢
    • 2020-01-23
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    相关资源
    最近更新 更多