如何在text2vec中包含停用词(术语)

时间:2018-02-22 09:39:41

标签: r text-mining text2vec

Problem checking node_modules dependencies: Unexpected end of JSON input包中,我使用的是create_vocabulary函数。例如: 我的文字是“这本书非常好”,并假设我没有使用停用词和1L到3L的ngram。所以词汇术语将是

这本书非常好,这本书,.....书非常非常好。我只想删除“book is very”这个术语(以及使用向量的其他术语的主机)。因为我只想删除一个短语,我不能使用停用词。我编写了以下代码:

text2vec

当我执行上述步骤时,属性中的元信息会在vocab_mod中丢失,因此无法在vocab<-create_vocabulary(it,ngram=c(1L,3L)) vocab_mod<- subset(vocab,!(term %in% stp) # where stp is stop phrases. x<- read.csv(Filename') #these are all stop phrases stp<-as.vector(x$term) 中使用。

2 个答案:

答案 0 :(得分:0)

似乎subset函数删除了一些属性。你可以尝试:

library(text2vec)
txt = "This book is very good"
it = itoken(txt)
v = create_vocabulary(it, ngram = c(1, 3))
v = v[!(v$term %in% "is_very_good"), ]    
v
# Number of docs: 1 
# 0 stopwords:  ... 
# ngram_min = 1; ngram_max = 3 
# Vocabulary: 
#   term term_count doc_count
# 1:         good          1         1
# 2: book_is_very          1         1
# 3:    This_book          1         1
# 4:         This          1         1
# 5:         book          1         1
# 6:    very_good          1         1
# 7:      is_very          1         1
# 8:      book_is          1         1
# 9: This_book_is          1         1
# 10:           is          1         1
# 11:         very          1         1
dtm = create_dtm(it, vocab_vectorizer(v))

答案 1 :(得分:0)

@Dmitriy甚至可以删除属性......所以我找到的出路只是手动添加属性,现在使用attr函数

attr(vocab_mod,&#34; ngram&#34;)&lt; -c(ngram_min = 1L,ngram_max = 3L)和其他属性的儿子一。我们可以从词汇中获取属性详细信息。