Mar*_*ald 33 algorithm nlp word-frequency
如果没有获得信息检索的学位,我想知道是否存在任何用于计算单词在给定文本体中出现的频率的算法.目标是让人们对一组文本评论所说的内容有"普遍的感觉".沿着Wordle的路线.
我想要的是什么:
到达星星,这些将是桃子:
我尝试过一些使用Wordnet的基本内容,但我只是盲目地调整内容并希望它适用于我的特定数据.更通用的东西会很棒.
Ale*_*rov 70
你不需要一个,但几个不错的算法,沿着下面的方向.
对不起,我知道你说你想要吻,但不幸的是,你的要求并不容易.然而,存在所有这些的工具,你应该能够将它们绑在一起而不必自己执行任何任务,如果你不想这样做的话.如果你想自己完成一项任务,我建议你看一下干预,这是最简单的.
如果您使用Java,请将Lucene与OpenNLP工具包结合使用.你会得到非常好的结果,因为Lucene已经有一个内置的词干分析器和很多教程.另一方面,OpenNLP工具包的文档记录很少,但您不需要太多.您可能也对使用Python编写的NLTK感兴趣.
我会说你放弃了你的最后一个要求,因为它涉及浅层解析,并且肯定不会影响你的结果.
啊,顺便问一下.你正在寻找的那个文件 - 术语 - 频率 - 事物的确切术语称为tf-idf.这几乎是查找术语文档频率的最佳方式.为了做到这一点,你不会使用多维矢量矩阵.
... 是的我知道.在参加IR研讨会后,我对Google的尊重更大.在IR中做了一些事情之后,我对他们的尊重也同样快.
und*_*ied 16
欢迎来到NLP世界^ _ ^
您所需要的只是一些基础知识和一些工具.
已有工具可以告诉您句子中的单词是名词,形容词还是动词.它们被称为词性标注器.通常,他们将明文英语作为输入,并输出单词,基本形式和词性.以下是帖子第一句中流行的UNIX词性标注器的输出:
$ echo "Without getting a degree in information retrieval, I'd like to know if there exists any algorithms for counting the frequency that words occur in a given body of text." | tree-tagger-english
# Word POS surface form
Without IN without
getting VVG get
a DT a
degree NN degree
in IN in
information NN information
retrieval NN retrieval
, , ,
I PP I
'd MD will
like VV like
to TO to
know VV know
if IN if
there EX there
exists VVZ exist
any DT any
algorithms NNS algorithm
for IN for
counting VVG count
the DT the
frequency NN frequency
that IN/that that
words NNS word
occur VVP occur
in IN in
a DT a
given VVN give
body NN body
of IN of
text NN text
. SENT .
Run Code Online (Sandbox Code Playgroud)
如您所见,它将"算法"识别为"算法"的复数形式(NNS),将"存在"识别为"存在"的共轭(VBZ).它还将"a"和"the"标识为"确定者(DT)" - 文章的另一个词.如您所见,POS标记器还标记了标点符号.
要做除列表中最后一点之外的所有操作,您只需要通过POS标记器运行文本,过滤掉您不感兴趣的类别(确定者,代词等)并计算基本形式的频率.这些话.
以下是一些流行的POS标记:
TreeTagger(仅限二进制文件:Linux,Solaris,OS-X)
GENIA Tagger(C++:编译你的自己)
Stanford POS Tagger(Java)
要在列表中做最后一件事,您需要的不仅仅是字级信息.一个简单的方法开始是通过计算序列 的 话,而不仅仅是文字本身.这些被称为n-gram.一个好的起点是UNIX for Poets.如果你愿意投资一本关于NLP的书,我会推荐统计自然语言处理基础.
| 归档时间: |
|
| 查看次数: |
19955 次 |
| 最近记录: |