library(SnowballC) > > str str.st-6ren">
gpt4 book ai didi

r - R 词干中的 SnowballC "many"和 "only"

转载 作者:行者123 更新时间:2023-11-30 08:51:39 26 4
gpt4 key购买 nike

我正在使用 SnowballC 处理文本文档,但意识到它会词干诸如“many”和“only”之类的单词,即使它们不应该被词干。

> library(SnowballC)
>
> str <- c("many", "only", "things")
> str.stemmed <- stemDocument(str)
> str.stemmed
[1] "mani" "onli" "thing"
>
> dic <- c("many", "only", "online", "things")
> str.complete <- stemCompletion(str.stemmed, dic)
> str.complete
mani onli thing
"" "online" "things"

你可以看到,词干提取后,“many”和“only”变成了“mani”和“onli”,之后无法用stemCompletion补全回来,因为“many”中的字母不包含“mani”。请注意“onli”如何完成为“online”而不是原来的“only”。

这是为什么呢?这是解决这个问题的方法吗?

最佳答案

词干提取通常作为一组规则来执行,即从单词中剥离所有词缀(包括派生词缀和屈折变化词缀),留下其词根。词形还原通常仅删除屈折词缀。词干提取是词形还原的更激进的版本。鉴于您想要什么,您似乎更喜欢词形还原。

为了比较两者,大多数词形还原器仅限于处理英语中名词和动词词缀的一些规则 --ed-s>-ing,例如。他们必须处理一些不规则的情况,但通过一些训练数据,可能可以涵盖许多情况。

词干分析者预计会进行更深入的挖掘。因此,他们可以进行的可能转换的空间更大,因此您更有可能最终出现错误。

要了解数据中发生的情况,让我们看看具体情况。

online -> onli:到底为什么会发生这种情况?对此不太确定;可能有一些规则试图迎合像 medic-inemedic 这样的词>-alsub-ma​​ri-nemari- neimagi-neimagi-国家。

only -> onli, many -> mani:这些看起来特别奇怪,但可能更比之前的规则合理——尤其是在处理以 -ed 结尾的动词时。如果您要词干否认研究修改指定,您会希望它们是相当于它们的未变形形式拒绝研究修改指定。您可以制定规则将每个动词转换为未变形的形式,但作者选择将词根设为以 -i 结尾的形式。为了确保这些匹配,-y 结尾也必须转换为 -i

使用词形还原器,您可能会得到更可预测的结果。由于它们只删除屈折词缀,因此您将获得onlymanyonlinething,因为您通缉。好的词干分析器和词形还原器都可以很好地工作,但是词干分析器要做更多的事情,因此有更多的错误空间。

关于r - R 词干中的 SnowballC "many"和 "only",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29925840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com