Quanteda phrasetotoken 不起作用

Quanteda phrasetotoken does not work

情况一

我在 Quanteda 包中应用 phrasetotoken 函数时得到奇怪的结果:

dict    <- dictionary(list(words = ......*lokale energie productie*......)) 
txt     <- c("I like lokale energie producties) 
phrasetotoken(txt, dict)

问题:有时我得到 lokale_energie_producties,有时错误地得到原来的 lokale energie producties

这个问题似乎与字典中的点有关。这些点(?)需要处理起始和尾随字符(例如,“1lokale energie productieniveau”)。

情况2

在 txt 文件中加载时,prasetotoken 函数根本不起作用。

txt <- paste(readLines("foo.txt", collapse=" ")
txt <- phrasetotoken(txt, dict)

注意。使用函数 readtext 而不是 readLines 会抛出以下错误

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘phrasetotoken’ for signature ‘"readtext", "dictionary"’

感谢任何帮助。

情况一

我们用更强大、更灵活的函数 tokens_compound() 替换了 phrasetotoken()。它是这样工作的(在对您的代码进行一些修改以使其在语法上正确之后):

txt <- c("I like lokale energie producties") 
toks <- tokens(txt)

tokens_compound(toks, list(words = c("*lokale", "energie",  "productie*")))
## tokens from 1 document.
## Component 1 :
## [1] "I"                         "like"                      "lokale_energie_producties"

情况 2

改为尝试以下工作流程:

require(magrittr)  # for the pipes
readtext("foo.txt") %>%
    corpus() %>%
    tokens() %>%
    tokens_compound(sequences = dict)