Nlp 文本挖掘-最常用词,规范化

Nlp 文本挖掘-最常用词,规范化,nlp,text-mining,Nlp,Text Mining,我是一名研究人员,拥有大约17000个自由文本文档,其中约30-40%与我的结果相关。是否有一个开源工具可以用来确定与结果相关的最常见的单词(甚至短语,但不是必需的),对已经出现的单词频率进行规范化?所有文件都是由卫生保健工作者编写的,因此规范化非常重要,因为两个文件都有技术语言,并且希望筛选出“the”、“it”等词 我试图做的是使用正则表达式或NLP构建一个工具,然后使用这些词根据新文档识别结果。我不打算花大量的时间定制NLP工具,所以一些具有合理准确性的工具就足够了 我知道SAS、SQL(

我是一名研究人员,拥有大约17000个自由文本文档,其中约30-40%与我的结果相关。是否有一个开源工具可以用来确定与结果相关的最常见的单词(甚至短语,但不是必需的),对已经出现的单词频率进行规范化?所有文件都是由卫生保健工作者编写的,因此规范化非常重要,因为两个文件都有技术语言,并且希望筛选出“the”、“it”等词

我试图做的是使用正则表达式或NLP构建一个工具,然后使用这些词根据新文档识别结果。我不打算花大量的时间定制NLP工具,所以一些具有合理准确性的工具就足够了

我知道SAS、SQL(我正在使用postgreSQL)和Python,但可能在R中过得去。我以前没有做过任何NLP。有没有什么软件我可以使用,没有太陡峭的学习曲线?谢谢

GATE(文本工程的通用架构)是一个有用的工具

通过GUI工具在语料库上制作注释并使用注释组合短语,然后运行Java注释模式引擎(JAPE)对此非常有帮助

这些都是您可以查看的有用链接

在我们的一个应用程序中,我们已经体验了使用该工具从医学语料库中提取体征和症状的系统


谢谢。

您可以在此处找到一些有用的R软件包的链接:

我建议首先尝试使用unix文本工具。 在coursera课程单词标记化课程中,Youtube链接为。一个简单的教程

我们使用,并为此目的。如果您以前使用过unix文本工具,这里是完整的命令

 tr -sc 'A-Z' 'a-z'  < *.txt | tr -sc 'A-Za-z' '\n'  | sort | uniq -c | sort -n -r
tr-sc'A-Z'A-Z'<*.txt | tr-sc'A-Za-Z'\n'| sort | uniq-c | sort-n-r
除此之外,以下是各部分的说明

tr -sc 'A-Za-z' '\n' < filename.txt 
tr-sc'A-Za-z'\n'
此命令以filename.txt更改每个单词,本质上是在每个单词后添加新行

tr -sc 'A-Za-z' '\n' < *.txt 
tr-sc'A-Za-z'\n'<*.txt
与上面相同,但目录中的所有txt文件

tr -sc 'A-Za-z' '\n' < *.txt | sort 
tr-sc'A-Za-z'\n'<*.txt |排序
通过管道发送命令进行排序。首先,我们将从很多“a”字开始

tr-sc'A-Za-z'\n'<*.txt | sort | uniq-c
将排序结果传递到uniq命令并计数

tr -sc 'A-Za-z' '\n' < *.txt | sort | uniq -c | sort -n -r
tr-sc'A-Za-z'\n'<*.txt | sort | uniq-c | sort-n-r
管道命令再次排序,以查看最常用、最常用的单词

这里的问题是:'和'和'和'计数两次

tr -sc 'A-Z' 'a-z'  < *.txt | tr -sc 'A-Za-z' '\n'  | sort | uniq -c | sort -n -r
tr-sc'A-Z'A-Z'<*.txt | tr-sc'A-Za-Z'\n'| sort | uniq-c | sort-n-r

tr'[:upper:]['[:lower:]['<*.txt | tr-sc'A-Za-z'\n'| sort | uniq-c | sort-n-r

再次将所有单词改为小写和同一管道。这将获得文件中最常用的单词。

NLP当然不容易,在这种特殊情况下可能并不需要。关于标准化,也许就足够了?

谢谢你的回答,我研究了所有3个答案,但这是一个非常简单和优雅的方法。我也意识到我不能正常化,因为我的问题的要求,所以这正是我需要的。如何从输出中删除单个字母,或者只删除撇号s?是否有其他tr命令的指南?谢谢!Yes视频链接还提供了如何删除撇号s。当我有时间看的时候,我会更新答案。谢谢,我的意思是因为撇号被删除了,我也会得到单独的字母作为结果,我想排除这些,也许把Marty和Marty的作为同一个词。视频中没有对此进行解释,但不必担心响应,目前的这种方法已经足够满足我的需要。我的视频系列展示了如何使用RapidAdminer(FOSS,GUI):
R
是一个很好的工具。如果您可以发布一个带有一些示例数据和所需结果的片段的Q,那么您可能会得到一些代码来帮助您。使用
[r][text mining]
搜索SO,您可能会找到可以轻松适应您的用例的代码。
tr -sc 'A-Za-z' '\n' < *.txt | sort | uniq -c | sort -n -r
tr -sc 'A-Z' 'a-z'  < *.txt | tr -sc 'A-Za-z' '\n'  | sort | uniq -c | sort -n -r
tr '[:upper:]' '[:lower:]' < *.txt | tr -sc 'A-Za-z' '\n'  | sort | uniq -c | sort -n -r