0

在 R 中提取正确的文本后,我遇到了问题。'papper' 应该显示为 'papper' 但显示为 'papp','projekt' 变为 'projek'。

因此生成的频率云显示了这些缩短的版本,这些版本失去了实际意义或变得难以理解。

我能做些什么来摆脱这个问题?我正在使用最新版本的雪球(0.6.0)。

代码:

library(tm)
library(SnowballC)
text_example <- c("projekt", "papper", "arbete")
stem_doc <- stemDocument(text_example, language="sv")
stem_doc

Expected:
stem_doc
[1] "projekt" "papper"   "arbete" 

Actual:
stem_doc
[1] "projek" "papp"   "arbet"
4

1 回答 1

0

您在此处描述的内容实际上不是词干提取,而是称为词形还原(请参阅@Newl 的链接了解不同之处)。

要获得正确的引理,您可以使用Rpackage UDPipe,它是UDPipe C++ library的包装器。

这是一个快速示例,说明您将如何做您想做的事情:

# install.packages("udpipe")    
library(udpipe)
dl <- udpipe_download_model(language = "swedish-lines")
#> Downloading udpipe model from https://raw.githubusercontent.com/jwijffels/udpipe.models.ud.2.3/master/inst/udpipe-ud-2.3-181115/swedish-lines-ud-2.3-181115.udpipe to C:/Users/Johannes Gruber/AppData/Local/Temp/RtmpMhaF8L/reprex8e40d80ef3/swedish-lines-ud-2.3-181115.udpipe

udmodel_swed <- udpipe_load_model(file = dl$file_model)

text_example <- c("projekt", "papper", "arbete")

x <- udpipe_annotate(udmodel_swed, x = text_example)
x <- as.data.frame(x)
x$lemma
#> [1] "projekt" "papper"  "arbete"
于 2019-05-13T09:13:15.610 回答