使用`textcat`过滤语料库中的非英语单词

时间:2013-08-26 15:43:04

标签: r

Similar to this SO member,我一直在寻找R中的一个简单包来过滤掉非英语单词。例如,我可能有一个如下所示的单词列表:

Flexivel
eficaz
gut-wrenching
satisfatorio
apropiado
Benutzerfreundlich
interessante
genial
cool
marketing
clients
internet

我的最终目标是简单地过滤掉语料库中的非英语单词,这样我的列表就可以了:

gut-wrenching
cool
marketing
clients
internet

我已将数据读作data.frame,但随后会将其转换为语料库,然后转换为TermDocumentMatrix,以便使用wordcloudtm创建wordcloud。

我目前正在使用包textcat按语言进行过滤。 The documentation is a bit above my head,但似乎表明您可以在列表上运行命令textcat。例如,如果上面的数据位于名为df的data.frame中,并且有一个名为“words”的列,我将运行命令:

library(textcat)
textcat(c(df$word))

然而,这具有将整个单词列表作为单个文档读取的效果,而不是查看每一行并确定它的语言。请帮忙!

1 个答案:

答案 0 :(得分:0)

对于词典搜索,您可以使用aspell

txt <- c("Flexivel", "eficaz", "gut-wrenching", "satisfatorio", "apropiado",
  "Benutzerfreundlich", "interessante", "genial", "cool", "marketing",
  "clients", "internet")

fn <- tempfile()
writeLines(txt, fn)
result <- aspell(fn)

results$Original给出了不匹配的单词。从那些你可以选择匹配的单词:

> result$Original
[1] "Flexivel"           "eficaz"             "satisfatorio"      
[4] "apropiado"          "interessante"       "Benutzerfreundlich"
> english <- txt[!(txt %in% result$Original)]
> english
[1] "gut-wrenching" "genial"        "cool"          "marketing"    
[5] "clients"       "internet"

但是,正如Carl Witthoft所说,你无法确定这些是否真的是英文单词。例如,'酷','营销'和'互联网'也是有效的荷兰语。