首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于e1071的文本分类

基于e1071的文本分类
EN

Stack Overflow用户
提问于 2016-10-14 20:32:07
回答 3查看 4.6K关注 0票数 4

我有一个有两列的数据。一列包含文本。该列的每一行包含三个不同类别(技能、资格、经验)的某种类型的数据,其他列是它们各自的类标签。

数据文件的快照:

如何应用软件包e1071中的svm。如何将文本数据列转换为分数。我想把文本列转换成文档术语矩阵。他们还有别的办法吗?如何制作d-t矩阵?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-14 21:02:13

您可以使用RTextTools包创建文档术语矩阵。使用create_matrix函数:

代码语言:javascript
复制
# Create the document term matrix. If column name is v1
dtMatrix <- create_matrix(data["v1"])

然后,您可以使用以下方法来训练支持向量机模型:

代码语言:javascript
复制
# Configure the training data
container <- create_container(dtMatrix, data$label, trainSize=1:102, virgin=FALSE)
 
# train a SVM Model
model <- train_model(container, "SVM", kernel="linear", cost=1)

有关信息,RTextTools user e1071内部将对模型进行培训。

有关更多细节,请参阅RTextTools和e1071文档。

票数 5
EN

Stack Overflow用户

发布于 2017-07-12 07:16:10

您可以使用R中的汤姆逊包对文本进行预处理,然后才能形成文档术语矩阵,其中包括-删除停止词、标点符号、数字、规范化(USA = U.S.A)、词干词干等,为dtm -( tfidf)添加加权以增加重要术语的重要性。

完成这些步骤后,可以使用e1071中的svm()来训练分类器

代码语言:javascript
复制
 fit <- svm(x, y, kernel = "linear") 

这里,

代码语言:javascript
复制
  x = dtm 

  y = a vector of the corresponding labels 

使用该模型来预测测试数据的类(确保您的测试数据也已被预处理)。

票数 0
EN

Stack Overflow用户

发布于 2020-09-17 13:52:07

我还考虑使用RTextTools。它的实现相对容易。但是,如果您的数据存在类不平衡,则这是无用的。它不允许您控制容器中的分层分割。

代码语言:javascript
复制
container <- create_container(dtMatrix, data$label, trainSize=1:102, virgin=FALSE)

您不知道类标签的比例如何在"trainSize=1:102“参数中结束。它也没有得到维持。所以,我会避免使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40051542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档