- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试确定将Python NLP项目引入哪个方向,对于SO社区的任何建议,我将非常感谢。
问题:
假设我有100个.txt文件,其中包含决策机构举行的100次会议的会议记录。我也有100个相应会议结果的.txt文件,其中包含该机构通过的决议。结果分为以下七个类别之一:1 –不采取行动,2 –采取软行动,3 –采取更强有力的行动,4 –采取最强有力的行动,5 –取消先前采取的软行动,6 –取消先前采取的强有力的行动,7 –取消先前采取的最强有力的措施。可替代地,这可以以从-3到+3的比例表示,0表示无动作,+ 1表示软动作,-1表示取消先前采取的软动作,依此类推。
根据输入文字,我有兴趣预测这七个结果中的哪个会发生。
我正在考虑将其视为一种情感分析,因为采取某种行动的决定基本上就是一种情感。但是,我发现的所有情感分析示例都集中于积极/消极的二分法,有时还会添加中性情感作为一个类别。我还没有找到超过3种可能的结果分类的示例-不知道这是否是因为我没有在正确的地方看待,是因为无论出于何种原因,这都不是真正令人感兴趣的方法,还是因为出于某种原因,这种方法是一个愚蠢的主意,但我还不确定。
问题1.我应该以一种情感分析的方式来进行这种处理吗,还是有其他一些方法可以更好地起作用?我是否应该将此视为一种分类问题,类似于按主题对新闻文章进行分类并训练模型以识别“主题”(结果)?
语料库:
我了解我需要建立一个用于训练/测试数据的语料库,看来我有两个显而易见的选择:
1 –手工编码一个CSV文件以获取训练数据,该数据将包含每个输入文本中的一些关键短语,并以7点制列出相应结果的值,类似于此处所做的:http://help.sentiment140.com/for-students
2 –使用Pang和Lee使用的方法(http://www.cs.cornell.edu/people/pabo/movie-review-data/),并根据结果将输入的每个.txt文件放入七个文件夹之一,因为根据历史数据可以知道结果(采取了何种操作) 。
第一种选择的缺点是,这将是非常主观的-我将确定我认为最重要的关键字/词组应包括在内,而我不一定是最好的仲裁者。第二种选择的缺点是,它的预测力可能较低,因为这些文本很长,包含许多无关的词/短语,并且在样式上常常很相似(策略性演讲倾向于使用策略性单词)。不过,我查看了庞(Pang)和李(Lee)的数据,似乎这可能不是一个大问题,因为他们使用的评论风格也不尽相同。我倾向于Pang and Lee的方法,但不确定是否可以使用两种以上的结果。
问题2.我是否正确以为这是我建立语料库的两个一般选择?我是否还有其他(更好)的选择?
问题3.鉴于以上所有,我应该使用哪个分类器?我认为最大熵效果最好;我也研究了随机森林,但是我对后者没有任何经验,并且真的不知道我在做什么。
提前非常感谢您:)
最佳答案
问题1-最简单的方式认为这是文本分类任务(情感分析是一种文本分类任务,但绝不是唯一的一种)。
或者,正如您指出的那样,您可以将数据视为连续存在的数据,范围为-3(取消先前执行的最强操作)到+3(执行最强的操作),中间为0(不执行任何操作)。在这种情况下,您可以将结果视为具有自然顺序的连续变量。如果是这样,那么您可以将其视为回归问题而不是分类问题。在不了解更多数据的情况下很难知道这是否明智。如果您怀疑自己会有很多单词/短语,它们在音阶的一端很可能是(-3),而在音阶的另一端则很不可能(+3),反之亦然,那么回归可能有意义。另一方面,如果相关的词/短语与强烈的情感相关联并且很可能出现在音阶的两端但不在音阶的中间,那么您最好将其视为分类。它还取决于您要如何评估结果。如果您的算法预测文档为-2且实际上为-3,那么与文档预测的+3相比,它的惩罚会更少吗?如果是这样,最好将其视为回归任务。
问题2:“我是否认为这是我建立语料库的两个一般选择?我是否还缺少其他(更好)选择?”
请注意,文档集(会议记录和相应结果的.txt文件)是您的主体-通常要做的是随机选择20%左右作为测试数据,其余80%作为训练数据。上面考虑的两个常规选项是用于选择分类或回归算法应遵循的一组功能的选项。
您可以正确地识别出两种最明显的特征使用方法的优点和缺点(手工挑选您自己的方法,而Pang&Lee仅使用字母组合词(单词)作为短语的方法)。
就个人而言,我也倾向于使用后一种方法,因为众所周知,人类很难预测哪些短语将对分类有用-尽管没有理由为什么您不能将两者组合在一起,因为最初的功能集包括了所有单词以及您认为可能特别相关的任何短语。正如您所指出的那样,会有很多无关的单词,因此可能有助于抛出很少见的单词,或者在类之间的频率差异不足以提供任何判别能力的单词。减少一组初始特征的方法称为“特征选择”技术-提到了一种常见方法here。或参见this paper获得更全面的列表。
您还可以使用数据集here考虑诸如高价词,高引语词或高优势词的百分比之类的功能(单击补充材料并下载zip)。
根据您要为此项目投入多少精力,另一种常见的做法是尝试一整套方法,然后看看哪种方法最有效。当然,您无法使用测试集中的数据来测试哪种方法最有效-这可能会作弊,并可能会过度拟合测试数据。但是您可以将训练集的一小部分留作“验证数据”(即用于测试不同方法的小型测试集)。鉴于您没有太多的培训数据(大约80个文档),可以考虑使用cross validation。
问题3-最好的方法可能是尝试不同的方法,并选择在交叉验证中最有效的方法。但是,如果我不得不选择一两个,我个人发现k-nearest neighbor classification (with low k) or SVMs通常可以很好地处理这种事情。合理的方法可能是
让您的初始特征全部为会标(单词)+短语
在查看一些训练数据后,您认为可能具有预测性;
应用特征选择技术来缩小特征集;
应用任何
可以处理高维/文本特征的算法,例如http://www.csc.kth.se/utbildning/kth/kurser/DD2475/ir10/forelasningar/Lecture9_4.pdf中的特征(该pdf中有很多技巧),或者在Pang&Lee论文中实现了不错的性能的算法。
http://nlp.stanford.edu/IR-book/pdf/13bayes.pdf中讨论了其他可能性。通常,特定算法的重要性小于其功能。坦白地说,这听起来像是一项非常困难的分类任务,因此很可能没有一件事情会做得很好。
如果决定将其视为回归而不是分类任务,则可以采用k最近邻回归(http://www.saedsayad.com/k_nearest_neighbors_reg.htm)或岭回归。
随机森林通常不适用于大量依赖特征(单词),但是如果最终决定使用较少数量的特征(例如,您手动选择的一组单词/短语,加上%的高价单词和%的高流行单词)。
关于python - 带Python的NLP-如何建立语料库,使用哪个分类器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31077378/
我尝试进行词形还原,即识别动词的词形和可能的阿拉伯语词根,例如: يتصل ==> lemma(动词的不定式)==> اتصل ==> root(三字根/Jidr thoulathi) ==> و ص
在执行 NLP 或 IR/IE 相关任务时,是否有人们通常用来删除标点符号和关闭类别词(例如 he, she, it)的停用词列表? 我一直在尝试使用 gibbs 抽样来进行词义消歧的主题建模,并且它
我不知道StackOverflow是否涵盖NLP,所以我来试试。 我有兴趣从特定 Realm 中找到两个词的语义相关性,即“图像质量”和“噪声”。我正在做一些研究,以确定相机的评论对于相机的特定属性是
是否有算法或方法可以评估文本项之间的共同趋势/主题? 例如,假设有四个数据点(文本条目): “我发现学校今天压力很大” “物理测试非常容易。” “我的物理测试根本没有挑战” “每个人都提早离开了,因为
我有兴趣了解有关 Natural Language Processing 的更多信息(NLP)并且我很好奇目前是否有任何不基于字典识别的策略来识别文本中的专有名词?另外,任何人都可以解释或链接到解释当
特征用于模型训练和测试。自然语言处理中的词汇特征和正字法特征有什么区别?例子首选。 最佳答案 我不知道这样的区别,大多数时候当人们谈论词汇特征时,他们谈论的是使用这个词本身,而不是仅使用其他特征,即它
在 NLP 任务中,人们用 SOC(句子开头)和 EOC(句子结尾)注释句子是很常见的。他们为什么这样做? 这是一个任务相关的表现吗?例如,您在 NER 问题中进行填充的原因与您在翻译问题中进行填充的
我一直在研究 NLP 并使用 notepad++ 来处理文本文件。这很好,在某些情况下,但问题是无法使用包含大量文本的大型文件进行锻炼。 VIM 不支持 UTF-8。哪一个是最好的支持 unicode
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 3年前关闭。 Improve this questi
我在 Stanford CoreNLP demo page 中解析了以下句子和 Stanford parser demo page .尽管两者都会导致可以暗示目的语义的解析(相应地取决于 advcl
语义网和自然语言处理之间究竟有什么区别? 语义网是自然语言处理的一部分吗? 最佳答案 这是两个独立的学科领域,但它们在某些地方确实重叠。因为文档,无论其格式如何,都是由异构语法和语义组成的,所以目标是
我需要解析非结构化文本并将相关概念转换为格式,以便所有三元组可以合并形成一个图。例如如果我有 2 个句子,比如 A improves B 和 B improves C,我应该能够创建一个像这样的图 A
使用 GATE 时,本体在自然语言处理中的作用是什么? 据我了解,在较高层次上,本体允许对由类、它们的实例、这些实例的属性以及域中类之间的关系组成的域进行建模。 但是,在使用 GATE 时创建自定义本
我最后一年的工程项目要求我使用 Java 或 Python 构建一个应用程序,该应用程序使用自然语言处理来总结文本文档。我什至如何开始编写这样的应用程序? 根据一些研究,我刚刚注意到基于提取的摘要对我
我想知道是否可以使用 Stanford CoreNLP检测一个句子是用哪种语言写的?如果是这样,这些算法的精确度如何? 最佳答案 几乎可以肯定,此时斯坦福 COreNLP 中没有语言识别。 “几乎”
我在一家制造可以与 child 交谈的玩具车的公司工作。我们想使用斯坦福核心 NLP 作为解析器。但是,它以 GPL 许可:他们不允许在商业上使用 NLP。我可以从斯坦福 NLP 小组购买其他许可证吗
我想使用 Natural Language Processing Libraries 从句子中找到谓词和主语.这种技术在NLP的世界里有什么名字吗?或者有没有办法做到这一点? Example : He
所以,这个问题可能有点幼稚,但我认为询问 Stackoverflow 的友好人士不会有什么坏处。 我现在的公司已经使用第三方 API 进行 NLP 一段时间了。我们基本上对一个字符串进行 URL 编码
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve thi
这可能是一个愚蠢的问题,但是如何迭代解析树作为 NLP 解析器(如斯坦福 NLP)的输出?它都是嵌套的括号,既不是 array 也不是 dictionary 或我使用过的任何其他集合类型。 (ROOT
我是一名优秀的程序员,十分优秀!