我正在寻找一些关于如何处理词汇主题的输入和理论。
假设我有一个字符串集合,它可能只是一个句子,也可能是多个句子。我想把这些字符串解析成最重要的单词,或者用一个分数来表示这个词有多重要。
让我们看几个例子,我的意思。
“我真的想要一辆Keurig,但我买不起!”
这是一个非常基本的例子,只有一句话。作为一个人,我可以很容易地看到"Keurig“是这里最重要的词。此外,“负担得起”也是相对重要的,尽管它显然不是句子的主要内容。“我”这个词出现了两次,但这一点也不重要,因为它并没有真正告诉我们任何信息。我可能会看到一个杂乱无章的单词/分数,如下所示:
"Keurig" => 0.9
"afford" => 0.4
"want" => 0.2
"really" => 0.1
etc...“这是我一生中最好的游泳练习之一。希望我能保持比赛的节奏。要是我记得拿起我的无防水手表就好了。”
这个例子有多个句子,所以整个过程中会有更重要的单词。如果不重复第一例中的要点练习,我很可能会看到两个或三个真正重要的单词出现在这里:“游泳”(或“游泳练习”)、“竞赛”和“手表”(或“防水手表”或“无防水手表”,具体取决于连字符的处理方式)。
举几个这样的例子,你会怎么做类似的事情呢?在编程中是否有任何现有的(开源的)库或算法已经这样做了?
发布于 2012-12-19 21:28:28
肯定有人在思考你所描述的问题。若昂文图拉和若阿金费雷拉达席尔瓦的文本中相关单字的排序与提取 (pdf)是一个很好的介绍现有的排名技术,以及改进的建议。他们描述的所有技术都依赖于一个语料库(大量文本),而不是一两行文本。你的语料库必须是所有样本的收集,或者可能是从特定来源收集的大量样本。请记住,单个单词(单字)相关性是一个很大程度上没有解决的问题。如文件所述:
“纯粹的统计方法,这种分类并不总是直截了当的,甚至不是精确的,因为虽然关联的概念很容易理解,但通常对于区分相关性和非相关性的边界还没有共识。例如,像"Republic”或"London“这样的词具有重要的相关性,而像”或“或”和“既然”根本没有关联,但是像“读”、“终止”和“下一步”这样的词又有什么关系呢?这类词是有问题的,因为通常对它们的语义价值没有共识。
有许多开源自然语言处理工具包。)(小心点。有些工具是免费的,但需要商业许可才能用于商业用途。)不管你选择什么方法,它们都会让你的生活更轻松。
我对自然语言工具包(NLTK)最熟悉。它很容易使用,有很好的文档记录,并且在书“用Python进行自然语言处理”(在线免费获取)中有特色。作为NLTK可能为您做的一个简单例子,可以想象使用它的词性标记。当每个词的词性被识别后,你可能会认为专有名词非常重要,而形容词则不那么重要。动词可能很重要,副词则不那么重要。这绝不是一个最先进的排名,但你得到有用的信息很少努力。当您准备继续进行更复杂的分析时,NLTK内置的标记、标记、块和分类功能将使您关注解决方案的其他细节。
发布于 2012-12-17 22:34:44
自然语言处理是一门属于自己的学科,对其进行了大量的正式研究。我会先看看那里。
我也会重新考虑我的需要。即使在50+多年的研究之后,最好的计算机科学家也能发明出Siri。我不会指望一台电脑能有规律地完成你所说的事情。
如果演讲有一定的限制(比如Siri,假设你有一个简单的命令或问题),那就更好了。重新考虑我的需求(假设我确实需要NLP)将包括定义我的限制。在那之后,我可能会寻找大量的例子。部分原因是为了测试我想出的任何东西,但许多现代解决方案都涉及机器学习。我需要这些例子作为学习曲线的输入。
总之,我很怀疑在这种无语境的情况下,任何东西都不能给你好的分数。
https://softwareengineering.stackexchange.com/questions/179791
复制相似问题