2017-03-22 24 views
0

我试图创建一个矩阵, 为此,我使用该R指令:无法看到文档中的RTextTools :: toLower()文本的结果

matrix = create_matrix(tweets[,1], toLower = TRUE, language="english", 
         removeStopwords=FALSE, removeNumbers=TRUE, 
         stemWords=TRUE) 

这里将R代码:

library(RTextTools) 
library(e1071) 

pos_tweets = rbind(
    c('j AIME la voiture', 'positive'), 
    c('cette machine est performante', 'positive'), 
    c('je me sens en bonne forme ce matin', 'positive'), 
    c('je suis super excitée d aller voir le spectacle de demain', 'positive'), 
    c('il est mon meilleur ami', 'positive') 
) 



neg_tweets = rbind(
    c('je séteste cette voiture', 'negative'), 
    c('ce film est horrible', 'negative'), 
    c('je suis fatiguée ce matin', 'negative'), 
    c('je déteste ce concert', 'negative'), 
    c('il n est pas mon ami', 'negative') 
) 

test_tweets = rbind(
    c('je suis heureuse ce matin', 'negative'), 
    c('un bon ami', 'negative'), 
    c('je me sens triste', 'positive'), 
    c('pas belle cette maison', 'negative'), 
    c('mauvaise chanson', 'negative') 
) 

tweets = rbind(pos_tweets, neg_tweets, test_tweets) 

# build dtm 
matrix= create_matrix(tweets[,1], toLower = TRUE, language="french", 
         removeStopwords=FALSE, removeNumbers=TRUE, 
         stemWords=TRUE) 

,我说有些是与基质中大写字母的单词的问题。

您能解释一下为什么我会遇到这个问题吗?

谢谢

+1

在哪里你在矩阵中看到大写字母吗?我猜想函数create_matrix的参数toLower只是告诉函数将数据视为小写,但实际上并不修改数据本身。 – chateaur

+0

实际上,如果您查看矩阵:文档以其原始形式显示(如'matrix $ dimnames $ Docs'所示),而术语是小写的(参见'matrix $ dimnames $ Terms')。在内部看来,一切运作良好:您可以在_j AIME la voiture_中找到_aime_一次。 – Scarabee

回答

3

正如@chateaur说,它在内部执行TOLOWER,它只是没有在任意点,你暴露管道的内容。 RTextTools + tm会严重限制您可以做什么,在哪里,何时以及在您的管道中以何种顺序进行。这真是令人沮丧。避免...

我建议你编写自己的管道最好的开放源代码包,我发现了管道时,我正在调查这家最近被quanteda。 为了说明这一点,它有一个超载toLower()方法,你可以使用字符串,语料库,令牌 - 无论你喜欢,没有限制,在停用词,标点符号删除和词干之前或之后。与RTextTools + tm不同的是,它有许多其他有用的方法用于以任意顺序的步骤构建管线。 (您也可以通过查看活动维护者的数量/比率,提交,问题,修复,发布,github上的命中,SO,谷歌,代码和API的清洁度等来衡量像quanteda这样的包的实用性) 。

在前端使用RTextTools + tm有时很痛苦,而且经常受到限制。我只是发现了太多的错误,限制,语法怪癖和对他们的烦恼 - 它杀死了我的生产力,并不断让我疯狂。它也不是太高性能。您仍然可以使用(RTextTools +)tm来构造和操作DTM(和TF/TFIDF)矩阵,并使用e1071作为分类器。

另外:qdap软件包的荣誉提名,用于在文档/话语级同样添加有用的工具。

(PS:这是真正可悲的是,R文字处理程序包是如此割据......这么多的人在交叉目的工作,奋力重塑车轮......但有时会出现这种情况有以下几个原因)