我如何提取文本的关键字? [关闭] 我如何提取文本的关键字? [关闭](How do I ex

2019-05-12 12:15发布

我该如何进行数据挖掘的文字堆砌的使用情况,以获取关键字? (“雅各史密斯”或“围栏”)

而且有一个软件已经做到这一点? 甚至半自动的,如果它可以过滤掉像简单的话“的”,“和”,“或”,那么我能得到的主题更快。

Answer 1:

一般的算法将是这样的:

- Obtain Text
- Strip punctuation, special characters, etc.
- Strip "simple" words
- Split on Spaces
- Loop Over Split Text
    - Add word to Array/HashTable/Etc if it doesn't exist;
       if it does, increment counter for that word

最终的结果是文本中的所有单词的频率计数。 然后,您可以用文字的总数将这些价值观和分获得频率的百分比。 任何进一步的处理是由你。

你也要去想看看词干 。 词干是用来减少的话他们的根。 例如going => gocars => car等。

像这样的算法将是垃圾邮件过滤器,关键字索引之类常见的。



Answer 2:

这是在NLP一个悬而未决的问题,所以没有简单的答案。

我的快速和肮脏的建议“的作品,对我”是topia.termextract 。

雅虎具有关键字提取服务( http://developer.yahoo.com/search/content/V1/termExtraction.html ),其是低召回但高精度。 换句话说,它给你一个小数目的高品质方面,但是偏出许多在文档中的条款。

在Python中,有topia.termextract( http://pypi.python.org/pypi/topia.termextract/ )。 这是比较吵,并提出了许多虚假的关键词,但使用简单。

Termine( http://www.nactem.ac.uk/software/termine/ )是英国的web服务也比较吵,并提出了许多虚假的关键词。 然而,在我看来,要略高于topia.termextract更准确。 因人而异。

去噪太多的关键字结果的一种方式(如topia.termextract和termine)是创建一个频繁出现的术语的词汇,然后扔出去建议条款中没有的词汇。 换句话说,做两个超过你的文集:第一阶段,计算每个关键字的频率。 在第二遍,放弃过于罕见的关键字。

如果你想编写自己的,也许是最好的介绍是由公园,谁现在是IBM写:

  • “自动词汇提取:超越术语标识”可在http://portal.acm.org/citation.cfm?id=1072370
  • “词汇表提取和利用的信息搜索和传输系统为IBM技术支持”

这里有一些更多的参考,如果您想了解更多:

  • http://en.wikipedia.org/wiki/Terminology_extraction
  • “CorePhrase:关键词的提取的文档聚类”
  • 刘等人2009 NAACL HLT
  • “非组成词的自动识别”
  • “数据挖掘会见搭配的发现”
  • 以及其他引用的主机,你可以在主题挖掘。


Answer 3:

还有一个叫服务炼金术可以做词语提取,概念标记,情感分析等。

它是有效的,我测试过,但我不知道他们的商业策略(如果有的话)。 它们提供的API用于任何形式的语言(几乎)。

我读的地方(抱歉,我不记得了),相比于那些由约瑟夫提出炼金术给出的输出噪音更小。



Answer 4:

您没有指定您正在使用的技术,所以我想一个shell脚本也是一种可能性。

我一直用这个词的频率分析,例如印象深刻高级Bash脚本编程指南 (12-11)

例如,以下从获取项目古登堡一本书,写出来的字频分析“报告”:

wget http://www.gutenberg.org/files/20417/20417-8.txt -q -O- | 
sed -e 's/\.//g'  -e 's/\,//g' -e 's/ /\
/g' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr > output.txt

应该扩展到从“普通”列表中排除的话(在,和,一......)等。



Answer 5:

我个人推荐的毛伊岛( http://code.google.com/p/maui-indexer/ ):它依赖于KEA,但它在以各种方式延伸。 它是能够接受训练,并且可以使用RDF格式的术语。



Answer 6:

我用NTLK来识别命名实体取得了一些成功之前。 它是在承认人的和组织的名字特别好。



文章来源: How do I extract keywords used in text? [closed]