问题标签 [text-analysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python Context Free Grammar 和 PCFG 生成基准测试?
我知道 Python 中有多种函数可用于通用 CFG 和 PCFG;但是它们的速度似乎都不同。
例如:NLTK、PyParsing。
最近有没有比较与速度和内存使用相关的各种属性的基准?
nosql - Neo4j,在节点属性中存储文本数据,文本分析和全文搜索需求
当需要文本分析时,是否可以将文本数据存储在图形节点中?
我有一个应用程序涉及通过主题、作者、参考文献等相互关联的数千个文档。我想存储文档之间的链接,但也能够使用文本分析技术分析文档的文本,文本分析也将需要分析所有节点上的文档文本以得出字数等。
目前,我已经研究了一些选项,试图达到最佳/最实用:
- 使用带有桥接表的关系数据库技术来管理关系信息(缺点:SQL 查询“遍历”关系会很困难)
- 使用图数据库技术来存储关系和文档信息(缺点:图数据库不是文本存储和检索的最佳选择,担心尝试跨所有节点运行全文分析会很慢并且难以与文本分析框架一起使用),
- 使用图形数据库存储关系,使用另一个如 CouchDB 存储文档信息(缺点:管理两个存储并使它们保持同步),
- 仅使用图形数据库来存储关系并将文档存储在磁盘或 HDFS 等中以进行分析。
- 其他?
任何人都可以建议其中一种或其他是否是实施的最佳方法吗?
谢谢,
保罗
algorithm - 是否可以检查一小段文本是否是随机的?
是否可以检查一个短的文本序列,例如两个或三个单词,是否是随机的?我的第一个想法是计算字符串的熵。
但任何字符组合"hello world"
都会产生相同的熵,但会创建一个随机字符串,如"llloo ehrdw"
. 基于熵的方法在文本等长字符串上效果很好。在这里,您还可以计算单个字符来确定它是一种语言。您还可以在此处使用 Zipfs Law 来检查真实语言...
下一个方法是常用词的查找表,就像普通的英语词典一样。这种方法的问题是首先创建一个单词列表。
例如:
因此,一切都是为了在这里找到单词以将它们与您的单词表进行比较,这真的很难。
所有这些方法的另一个问题可能是,它们只能检测某些语言或需要接受某种语言的训练。考虑到我们现在只想使用英语。
那么有什么好的方法可以做到这一点,还是我需要接受误报和误报?
nlp - Stemmers vs Lemmatizers
自然语言处理 (NLP),尤其是英语,已经发展到如果存在“完美”词形还原器,词干提取将成为一种古老技术的阶段。这是因为词干分析器将单词/标记的表面形式更改为一些无意义的词干。
再一次,“完美”词形还原器的定义是有问题的,因为不同的 NLP 任务将需要不同级别的词形还原。例如在动词/名词/形容词形式之间转换单词。
词干
词形还原剂
所以问题是,英语词干分析器今天有用吗?因为我们有大量的英语词形还原工具
如果不是,那么我们应该如何继续构建可以接受 、 和 预处理的强大词
nounify
形verbify
还原 器adjectify
?adverbify
词形还原任务如何轻松扩展到与英语具有相似形态结构的其他语言?
nlp - 非常短文档的文档查询相似度
我正在研究一个包含向量空间模型的基本实现的项目。文档集合 d1...dn 形成术语文档矩阵的列,行代表集合中的单词。我使用具有余弦相似度的标准 tf-idf 评分来计算查询和文档之间的距离。
我的问题是,哪个距离度量可以“解决”短文档之间的相似性。示例:包含单个单词的文档,它是查询的一部分,使用余弦相似度将得分非常高,因为这样的文档的范数非常小。我怎样才能“惩罚”这些明显不相关的文件?
search - 具有近似匹配的基于字典的文本分析
我有一个包含超过 200 万个名称、阶段、位置等的数据库/字典。样本数据如下:
对于每个条目,都有一个 ID。
现在,当用户向我的网站提交文本时,将对文本进行分析,并以一定的容错性(近似匹配)查找文本中所有出现的名称、阶段和位置。举些例子:
- “精神错乱:一遍又一遍地做同样的事情”阶段将与完整的阶段“精神错乱:一遍又一遍地做同样的事情并期待不同的结果”相匹配</li>
- “精神错乱:一遍又一遍地做同样的事情并期待不同的结果”阶段将与完整的阶段“精神错乱:一遍又一遍地做同样的事情并期待不同的结果”相匹配< /li>
我不知道这是否是命名实体问题,因为我的数据库的阶段长度超过 2 行。我也不想找到确切的相位,我想近似匹配。
我正在寻找开源解决方案。提前致谢
java - Java的自定义标记器
我正在开发一个应用程序,我需要在其中处理包含电子邮件的文本文件。我需要文本中的所有标记,以下是标记的定义:
- 字母数字
- 区分大小写(要保留大小写)
- '!' 和 '$' 将被视为组成字符。例如:
FREE!!
,$50
是令牌 '。' (dot) 和 ',' 逗号如果出现在数字之间,将被视为组成字符。例如:
192.168.1.1,24,500 美元
是令牌。
等等..
请向我推荐一些用于 Java 的开源标记器,这些标记器易于定制以满足我的需求。仅使用 StringTokenizer 和正则表达式就足够了吗?我也必须执行停止,这就是为什么我正在寻找一个开源标记器,它还将执行一些额外的事情,比如停止、词干。
autocomplete - 使用 n-gram 语言模型为 MS Word 开发自定义自动完成插件
有没有人对如何根据从大量训练数据构建的 n-gram 语言模型实现对 Microsoft Word 的自定义有任何建议,该自定义将在用户键入时提供单词预测(自动完成)选项。
我在一个我们转录音频文件的办公室工作。所有的材料都是一个人说话的话语,我们已经完成了几千个转录,还有几千个需要做。我们已经尝试了 ASR 解决方案,但发现它实际上比从头开始转录更努力地更正自动转录的文本。
我认为我们可以提出一个仅使用语言模型组件的解决方案,并在转录员打字时使用它来帮助他们。用户可以选择完整输入一些单词,只输入其他单词的前几个字母,然后使用空格键快速滚动最可能完成的列表,这样他们就可以像音频一样快速转录正在播放。
很想听听任何人的想法——特别是关于如何最好地生成 LM 以及如何插入它。
我还看到了这篇关于结合主题相关概率的精彩论文http://noah.coccaro.com/publications/thesis.pdf
java - 搜索用于检测自然语言中的比较级和最高级的库
我正在分析 java 中的自然语言文本,目前正在寻找一个能够检测德语中的比较和最高级(例如“更好”、“最快”……)的库。
我使用了斯坦福 NLP 的 POS Tagger,它在英语中运行良好,但在德语中不太详细(据我尝试,仅检测形容词,但没有形态特征)。
有谁知道这样的库/模型(还有非 java 库等)?
非常感谢!亨宁
regex - 正则表达式:如何从文本中查找和提取首字母缩写词和首字母缩写词的相应定义?
我想做类似这个问题中建议的事情——但在更一般的层面上: 首字母缩略词的正则表达式
输入示例:
“在一组开创性的论文中,Feddersen 和 Pesendorfer (1996, 1999),以下简称FP,并入……从现在开始,被贴上了“摇摆选民的诅咒”的标签SVC。预测……最好的方法开始使用静态应用程序安全测试( SAST ) 工具......来自拉丁语ante meridiem ( AM ),意思是中午之前......”
结果:
- ['费德森和佩森多弗','FP']
- ['摇摆选民的诅咒','SVC']
- ['静态应用程序安全测试','SAST']
- ['下午','上午']
当然,首字母缩略词有许多可能的“信号”。我在下面列出了一些:
- 括号: ... (...)
- ……以后……
- ... 从现在开始 ...
- ... 在这之后 ...
- ……简称……
- ... 随后 ...
- ... 因此 ...
- ……以后……
- ……以下……
- 等等
也许有两个正则表达式会有所帮助;一个用于括号,一个用于所有其他,因为它们的结构有很大不同。
只关注首字母缩写词,即。忽略从SOund Navigation And Ranging创建的声纳等案例。
是否有可能用正则表达式进行这样的思考,如果可以,你会怎么做?