所以我试图使用Weka SVM对文本进行分类.到目前为止,我用于训练SVM的特征向量由培训文本中出现的unigrams和bigrams的TF-IDF统计数据组成.但是,我从测试训练有素的SVM模型得到的结果根本不准确,所以有人能给我反馈我的程序吗?我按照以下步骤对文本进行分类:

>构建一个由训练文本中提取的unigrams和bigrams组成的字典
>计算每个训练文本中每个unigram / bigram出现的次数,以及unigram / bigram出现的训练文本数量
>使用步骤2中的数据计算每个unigram / bigram的TF-IDF
>对于每个文档,构造一个特征向量,该向量是字典的长度,并在向量的每个元素中存储相应的TF-IDF统计量(例如,文档1的特征向量中的第一个元素将对应于字典中第一个单词的TF-IDF相对于文档一)
>将类标签附加到每个特征向量,以区分哪个文本属于哪个作者
>使用这些特征向量训练SVM
>测试文本的特征向量以与训练文本相同的方式构建,并由SVM分类

还有,我需要训练具有更多功能的SVM吗?如果是这样,在这种情况下哪些功能最有效?非常感谢任何帮助,谢谢.

解决方法

自然语言文档通常包含许多只出现一次的单词,也称为 Hapax Legomenon.例如,Moby-Dick中44%的不同单词只出现一次,17%出现两次.

因此,包括来自语料库的所有单词通常会导致过多的特征.为了减小此功能空间的大小,NLP系统通常使用以下一项或多项:

>删除停用词 – 对于作者分类,这些通常是简短的常用词,如is,the,at,which等.
>词干 – 流行的词干分析器(如Porter词干分析器)使用一组规则来规范化单词的变形.例如,步行,步行和散步都映射到茎行走.
>相关/重要性阈值 – 计算Pearson相关系数或每个要素相对于类别标签的p值.然后设置阈值,并删除所有得分低于该阈值的值的功能.
>覆盖阈值 – 类似于上述阈值,移除至少在t个文档中没有出现的所有特征,其中t相对于整个语料库大小非常小(<0.05%).
>根据词性过滤 – 例如,仅考虑动词或删除名词.
>根据系统类型进行过滤 – 例如,临床文本的NLP系统可能只考虑在医学词典中找到的单词.

对于词干,删除停用词,索引语料库,计算tf_idf或文档相似度,我建议使用Lucene.Google“Lucene in 5分钟”,以获得一些关于使用lucene的快速简便的教程.

java – 自然语言处理 – 文本分类的特征的更多相关文章

  1. ios – 使用开放耳朵进行语音识别时的精度非常低

    我的应用程序中使用耳朵进行语音识别.主要关注的是准确性.在一个安静的环境中,精确度约为50%,但在嘈杂的环境中情况会变得更糟.几乎没有任何东西被正确识别.目前我正在使用约300字的字典文件.我应该寻找哪些方面来提高准确度?

  2. ios – 如何使用NSDateFormatter获取字符串“昨天”?

    我想格式化NSDate,以便昨天发生的日期会显示为“昨天”,可以使用NSDateFormatter来完成吗?

  3. Swift社交应用文本输入优化汇总

    本文将汇总一下Swift社交应用文本输入优化技巧。

  4. 在 Cocoa 中实现 ICU 文本变换

    ICU库提供了一整套强大的文本变换功能,在处理用户输入、特别是当你的程序需要处理一些英语之外的语言或者非拉丁字符时非常有用。在Apple的平台中,字符串变换一直以来都是通过CoreFoundation的CFStringTranform函数来实现。输入变换结果HELLOWORLDLowerhelloworld仅转换元音字母为小写。拉丁到ASCII这一步会移除变音符以及会把ASCII码范围之外的字符和标点符号转换成ASCII中与之最为接近的版本。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@fox

  5. 可点击 @、# 标记文本实现

    在社交类APP中@、#符号构成的标记文本已经形成了某种通用的意义:前者表示通知某位好友,而后者表示为某个话题或者分类。开始上码的代码首先声明了一个wordType的枚举类型,该类用用于对标示文本进行类型标记。这里之所以使用.character而不是后面的.word的原因是:后者会将@、#这些标示符丢弃,导致一只类似点击到无效区域的情形。当上诉检查通过也就是点击区域有效的时候,我们使用.word,获取点击区域的单词。

  6. android – AutoCompleteTextView隐藏自动完成建议

    解决方法我建议一些方法1)如果你想像自动完成textView一样做“测试”,那么这样做,2)如果你需要用“test”填写文本视图,还需要阻止建议增加自动完成textview的阈值级别,如果您使用阈值,它将在5个字符后显示建议.如果您需要尝试设置不同的单词并尝试避免建议,请根据字符串的长度动态更改阈值.

  7. android – 使用离子框架的语音识别

    我正在寻找一种使用离子框架进行语音识别的方法.我想在ios和android设备上运行一个应用程序.目前我在ios和android中都提供了一个Web视图,并且有一个共同的代码库.我想在其中包含语音识别功能并获取语音输出.解决方法如果您在Google上搜索“cordova语音识别”并且在Apache的Cordova网站上查看插件回购,看起来您至少有几个选项.这是我发现的两个快速的.>https://

  8. Android中的自然语言处理API

    我正在尝试制作类似于thiswebsite的Android应用程序.问题是我对自然语言处理领域很陌生.我不希望实现太多,只是提供用户与应用程序的一些交互,给他一种感觉,他确实在与某人聊天.基本上,我只是捕获用户输入的文本并将其发送到API并显示从API检索的结果.我遇到了http://opennlp.apache.org/和http://gate.ac.uk/,但不知道如何在我的Android应用

  9. 如何在Android上使用FaceDetector.Face进行人脸识别

    之后,我尝试使用FaceDetector.Face检测面部.然后我使用检测到的面部来训练我的脸部识别器模型.到目前为止没有发现任何错误.我的问题是我的模型无法识别FaceDetector.Face给出的任何检测到的面部.我总是从预测函数得到-1.谁能说出可能出错的地方呢?

  10. Android语音识别API离线

    有人可以帮帮我吗?我正在通过RecognizerIntent开发具有语音识别功能的应用程序.>哪个Android版本通过API正式提供了对应用的离线识别?>通过我读到的知识,如果通过在线服务或离线字典完成语音识别,那么开发者就不会选择它.我对吗?或者有没有记录的API设置离线?谢谢解决方法现在有离线语音识别是可能的android4.1.检查这篇文章article并检查pochetsphinx

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部