在最近的一个项目中,我面临着将复数名词转换为单数形式的任务。我知道一些词性标注算法和工具,可以识别名词的复数形式,并将它们标记为'NNS',但我不知道任何算法可以将它们转换为单数形式。我尝试过词干分析,但词干分析似乎太过激进,无法转换单词。它给出了类似这样的东西:
parties -> parti
但我想要的是:
fish -> fish
classes -> class
parties -> party
goods -> goods
cups -> cup
如果没有一本包含所有英语单词的大型词典,这似乎是一个很难解决的问题。有没有成熟的算法
我正在看tokenizer在ElasticSearch6.8中。我知道它定义了在构建索引时我们如何将文本标记为单词。作为一个例子,它将转换为“快速棕色狐狸!”将文本转换为术语[Quick, brown, fox!]。如果我在Elasticsearch中有一个包含文本"Quick brown fox!"的字段,它将在索引中被分解为三个单词。但是,如果我发送一个查询文本"Quick brown fox!",那么tokenizer也可以用于该查询参数吗?
我对ElasticSearch中何时使用词干分析器感到困惑。
在Dealing with Human Language/Reducing Words to Their Root Form部分中,我看到词干分析器用于将单词剥离为其词根形式。这使我相信词干分析器被用作分析器上的令牌过滤器。
但是令牌过滤器只过滤令牌,实际上并不会将单词缩减为其词根形式。
那么,词干分析器用在哪里呢?
我正在研究elasticsearch,并面临一个问题,即在搜索记录中,一个单词连续出现多少次。
就像我有以下几行:
{
{ "user":"Aniket", "postDate":"2016-04-26","body":"Search as we discuss yesterday one time word", "title":"One time word"}
},
{
"user": "aniket", "po