我需要建立一个php词典,它会找到一个词的词根。例如,搜索“汽车”,它会告诉“汽车是复数车” 或“拿”,它是“过去式”找到一个词的词根
我正在考虑使用Wordnet,但它似乎很复杂。
有什么建议吗? m绝望
关心;
我需要建立一个php词典,它会找到一个词的词根。例如,搜索“汽车”,它会告诉“汽车是复数车” 或“拿”,它是“过去式”找到一个词的词根
我正在考虑使用Wordnet,但它似乎很复杂。
有什么建议吗? m绝望
关心;
嗯,这里是一个扩展,确实词干(我beleive这大约是你想要的): http://pecl.php.net/package/stem
它不会做任何工作语法分析,但是。
这里是php-唯一版本:http://www.chuggnutt.com/stemmer.php
感谢FractalizeR!这就是我想要的!看完词干后,我认为所有单词及其关系(例如,采取,采取,采取,采取,鼠标,鼠标,汽车,汽车...)的数据库将更快因为它只是在数据库中查找。有什么建议? – 2011-03-28 03:54:56
鉴于单词“苍蝇”,Porterstemmer的答案是“fli”并给出“采取”,porterStemmer给了我“采取”......它似乎正常工作正常,但不适用于不规则情况 – 2011-03-28 04:19:05
好吧,既然提出词干不为你正常工作,您可以选择一些适合你从这里更好:
这里也是一些有趣的库:http://sourceforge.net/projects/nlp/
也链接到StackOverflow类似的问题:
NLP programming tools using PHP?
UPDATE: How do I do word Stemming or Lemmatization?
WORDNET lemmatizer:http://wordnet.princeton.edu/wordnet/download/
谢谢FratalizeR!我认为我的问题是与lemmatizer。 Stemmer不能帮助我。它需要字典才能在不规则的情况下工作。例如,苍蝇 - >飞,采取 - >采取,老鼠 - >老鼠。只有字典检查可以正确解释这个 – 2011-03-29 04:13:23
好的,我为你增加了一些链接。 – 2011-03-29 06:45:20
您可以在这里试用免费的Lemmatizer API:http://twinword.com/lemmatizer.php
向下滚动以找到Lemmatizer端点。
这会让你把“狗”变成“狗”,“能力”变成“能力”。
如果在POST传递或GET参数称为“文字”一个字符串,如“走进工厂”:
// 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"
}
这是非常广阔。建立字典的哪个方面是你的问题?使用第三方服务可能是一个不错的选择,因为这可能会变得非常复杂,直到你有一个工作解决方案。 – 2011-03-27 17:02:34
是的,我也在考虑谷歌翻译和雅虎翻译等第三方服务。但是这样做会很慢,因为每次都向Google提出请求并返回给我。并且每天请求限制为每天5000个请求。我正在寻找PSpell和附魔,希望这可以帮助我。 – 2011-03-27 18:00:22