0

我正在尝试构建一个闪亮的应用程序,它可以通过匹配文本框中的语料库来动态显示数据库列中的句子,即。当用户开始在文本框中键入文本时,所有将匹配的句子(来自键入的文本的语料库)都需要按与语料库匹配的单词数量的顺序显示我尝试过的kwic函数但这无助于动态匹配语料库,我尝试过的方法,

require(quanteda)
require(tm)
data(crude, package = "tm")
mycorpus <- corpus(crude)

kwic(mycorpus, "company") # Pass the words from the text box corpus

请求帮助...

4

1 回答 1

0

我想你要问的是,

table(kwic(mycorpus, phrase, join = FALSE)$keyword)

随着输入更多术语,其中phrase只会被延长。(需要quanteda >= 0.99,其中还包括phrase可能在此处有用的功能。)对于更一般的匹配,您可以将语料库和所有输入的术语(在不断延长的情况下phrase)转换为分词词干

mystems <- corpus(crude) %>% texts() %>% tokens() %>% tokens_wordstem()
phrase <- tokens(phrase, remove_punct = TRUE, remove_symbols = TRUE) %>%
    tokens_wordstem(language = "greek") %>% # or whatever
    as.character()

然后table(kwic(mystems, phrase, join = FALSE)$keyword)应该做同样的事情,但只匹配词干,而不是确切的词。如果您想要与每个文档匹配的单词数,那么*apply-type 包装器(或purrr::map())也将提取它。

于 2017-08-14T21:41:20.587 回答