问题标签 [nlp]
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.
algorithm - 解析具有未定义数量参数的表达式
我正在尝试将自制语言中的字符串解析为一种树,例如:
应该导致:
#、* 和 -> 是符号。a、b1 等是文本。
从那一刻起,我只知道评估表达式的 rpn 方法,我目前的解决方案如下。如果我在每个符号之后只允许一个文本标记,我可以很容易地将表达式首先转换为 RPN 表示法(b = b1 b2;d = d1 d2;f = f1 f2)并从这里解析它:
abc -> * de -> * # fg * #
然而,合并文本标记和其他任何东西似乎是有问题的。我的想法是创建标记令牌(M),所以 RPN 看起来像:
a M b2 b1 M c -> * M d2 d1 M e -> * # f2 f1 M g * #
这也是可解析的,似乎可以解决问题。
那说:
- 有没有人有类似的经验并且可以说它是或不是未来可行的解决方案?
- 是否有更好的方法来解析具有未定义的运算符数量的表达式?
- 你能指点我一些好的资源吗?
笔记。是的,我知道这个例子非常类似于 Lisp 前缀表示法,也许要走的路是添加一些括号,但我在这里没有任何经验。但是,源文本不得包含任何人工括号,而且我不确定如何处理潜在的中缀混合,如 # a * b -> [if value1 = value2] c -> d。
谢谢你的帮助。
编辑:似乎我正在寻找的是带有可变数量参数的后缀表示法的来源。
regex - 非正则上下文无关语言和无限正则子语言
我为大学做了一份工作,基本上说:
“证明非正则语言 L={0^n 1^n : n natural} 没有无限的正则子语言。”
我通过矛盾证明了这一点。我基本上说有一种语言 S 是 L 的子语言,它是一种常规语言。因为 S 可能的正则表达式是 0*、1*、(1+0)* 和 (0o1)*。我检查每个语法并证明它们都不是语言 L 的一部分。
但是,我如何证明任何非常规上下文无关语言都不能包含任何常规无限子语言?
我不想要证明本身,我只想指出正确的方向。
nlp - 用于 OCR 的多层感知器
我打算使用经过反向传播训练的多层感知器网络(一个隐藏层,输入用作包含图像中黑白像素的 8x8 位矩阵)。出现以下问题:
- 我应该使用哪种类型的学习:批量学习还是在线学习?
- 我如何估计隐藏层中正确的节点数?我打算处理英文字母的26个字母。
- 我怎样才能停止训练过程,以避免过度拟合?
- (不太相关)是否有另一个比 MLP 表现更好的 NN?我知道 MLP 会陷入局部最小值、过度拟合等问题,那么是否有更好的(基于软计算的)方法?
谢谢
algorithm - 对产品列表进行分类的算法?
我有一个列表,代表或多或少相同的产品。例如,在下面的列表中,它们都是希捷硬盘。
- 希捷硬盘 500Go
- 适用于笔记本电脑的希捷硬盘 120Go
- 希捷 Barracuda 7200.12 ST3500418AS 500GB 7200 RPM SATA 3.0Gb/s 硬盘
- 希捷全新闪亮 500Go 硬盘
- 希捷梭子鱼 7200.12
- 希捷 FreeAgent Desk 500GB 外置硬盘 银色 7200RPM USB2.0 零售
对于人类来说,硬盘3和5是一样的。我们可以更进一步,假设产品 1、3、4 和 5 相同,并将产品 2 和 6 放在其他类别中。
我们有一个庞大的产品清单,我想对其进行分类。有没有人知道什么是做这种事情的最佳算法。有什么建议么?
我虽然是贝叶斯分类器,但我不确定它是否是最佳选择。任何帮助,将不胜感激!
谢谢。
text - 比较上一个和下一个文件中包含重复“存根”的许多文本文件,并自动删除重复文本
我有大量文本文件(1000 多个),每个文件都包含来自学术期刊的文章。不幸的是,每篇文章的文件还包含上一篇文章结尾(开头)和下一篇文章开头(结尾)的“存根”。
我需要删除这些存根以准备对文章进行频率分析,因为存根构成重复数据。
在所有情况下,没有一个简单的字段来标记每篇文章的开头和结尾。但是,在这两种情况下,重复文本的格式似乎相同且位于同一行。
将每个文件与下一个文件进行比较然后删除重复文本的 1 个副本的脚本将是完美的。这似乎是编程时非常常见的问题,所以我很惊讶我找不到任何可以做到这一点的东西。
文件名按顺序排序,因此将每个文件依次与下一个文件进行比较的脚本应该可以工作。例如
是两篇文章,一篇从第 181 页开始,另一篇从第 186 页开始。这两篇文章都包含在下面。
有两卷测试数据位于 [ http://drop.io/fdsayre][1]
注意:我是一名学者,正在为心理学史上的一个项目对旧期刊文章进行内容分析。我不是程序员,但我确实有 10 年以上的 linux 经验,并且通常可以在我去的时候解决问题。
谢谢你的帮助
文件名:bul_9_5_181.txt
通感
ISI
大多数葡萄牙语单词表示黑色物体或与黑色有关的想法。诚然,这种关联并不是真正的联觉,但作者认为,这些合乎逻辑的自发关联与真实的有色试镜案例之间只是程度问题。参考
DOWNEY, JUNE E. 一个有色味觉的案例。阿米尔。J. of Psycho!., 1911, 22, S28-539MEDEIROS-E-ALBUQUERQUE。Sur un phenomene de synopsie presente par des Millions de sujets。/ 。德心理。规范等路径,1911, 8, 147-151。MYERS, CS 一例通感。英国人。J. of Psychol., 1911, 4, 228-238。
情感现象——密歇根大学约翰·F·谢泼德教授的实验
今年莱比锡实验室发表了三篇文章。Drozynski (2) 反对使用味觉和嗅觉刺激来研究有感觉的器质性反应,因为可能涉及呼吸障碍。他使用有节奏的听觉刺激,发现当以不同的速率和不同的分组给予时,每个受试者都伴随着独特的感觉。他用脉搏计和水体积描记器记录胸部呼吸和曲线。每个实验都以正常记录开始,然后给予刺激,然后是对比刺激;最后,取了另一个正常值。测量呼吸的长度和深度(没有记录时间线),并确定吸气长度与呼气长度的关系。还测量了脉搏的长度和高度。表格总结了作者在每种感觉的反应期间发现每个数量增加或减少的次数。伴随给定节奏的感觉状态总是复杂的,但结果是指那个似乎占主导地位的维度。仅从记录中复制了一些与正常和反应期无关的摘录。作者指出,兴奋会增加呼吸的频率和深度、吸气-呼气比以及脉搏的频率和大小。手臂体积有起伏。只要效果是安静的,它会导致速度和深度的降低 表格总结了作者在每种感觉的反应期间发现每个数量增加或减少的次数。伴随给定节奏的感觉状态总是复杂的,但结果是指那个似乎占主导地位的维度。仅从记录中复制了一些与正常和反应期无关的摘录。作者指出,兴奋会增加呼吸的频率和深度、吸气-呼气比以及脉搏的频率和大小。手臂体积有起伏。只要效果是安静的,它会导致速度和深度的降低 表格总结了作者在每种感觉的反应期间发现每个数量增加或减少的次数。伴随给定节奏的感觉状态总是复杂的,但结果是指那个似乎占主导地位的维度。仅从记录中复制了一些与正常和反应期无关的摘录。作者指出,兴奋会增加呼吸的频率和深度、吸气-呼气比以及脉搏的频率和大小。手臂体积有起伏。只要效果是安静的,它会导致速度和深度的降低 但结果是指似乎占主导地位的那个维度。仅从记录中复制了一些与正常和反应期无关的摘录。作者指出,兴奋会增加呼吸的频率和深度、吸气-呼气比以及脉搏的频率和大小。手臂体积有起伏。只要效果是安静的,它会导致速度和深度的降低 但结果是指似乎占主导地位的那个维度。仅从记录中复制了一些与正常和反应期无关的摘录。作者指出,兴奋会增加呼吸的频率和深度、吸气-呼气比以及脉搏的频率和大小。手臂体积有起伏。只要效果是安静的,它会导致速度和深度的降低
182
约翰·F·谢泼德
呼吸、吸气-呼气比、脉搏频率和大小。手臂体积显示出随着呼吸波增加的趋势。宜人性显示
nlp - Crawling The Internet
I want to crawl for specific things. Specifically events that are taking place like concerts, movies, art gallery openings, etc, etc. Anything that one might spend time going to.
How do I implement a crawler?
I have heard of Grub (grub.org -> Wikia) and Heritix (http://crawler.archive.org/)
Are there others?
What opinions does everyone have?
-Jason
nlp - 匹配包含带有排列的单词的行
假设您有一个包含 varchar 列的大表。
您将如何匹配在 varchar col 中包含“首选”一词但数据有些嘈杂并且偶尔包含拼写错误的行,例如:
上述拼写错误中“首选”一词的排列似乎表现出家族相似性,但它们几乎没有共同点。请注意,拆分每个单词并在每一行中的每个单词上运行levenshtein将非常昂贵。
更新:
还有其他几个这样的例子,例如“restricted”:
php - 如何将句子中的单词组合成组合词?
我有一句话,例如
John Doe 去年搬到了纽约。
现在我将句子分成单个单词,我得到:
array('John', 'Doe', 'move', 'to', 'New', 'York', 'last', 'year')
这很容易。但是后来我想组合单个单词来获得所有组合的术语。如果组合的术语有意义,那么我想得到所有这些。该操作的结果应如下所示:
约翰,能源部,约翰能源部,移动,能源部移动,约翰能源部移动,到,移动到,能源部移动到......
单词应该由 k 部分的限制组成。在上面的示例中,限制为 3。因此一个术语最多可以包含 3 个单词。
问题:如何在 PHP 中编写组合代码?如果我有一个函数,它将一个句子作为输入并给出一个包含所有术语的数组作为输出,那就太好了。
我希望你能帮助我。提前致谢!
algorithm - 缩短文本,只保留重要的句子
德国网站 nandoo.net 提供缩短新闻文章的可能性。如果您使用滑块更改百分比值,则文本会更改,并且会省略一些句子。
你可以在这里看到它的作用:
新闻文章在左侧并标记了标签。滑块位于第二列的顶部。将滑块向左移动得越多,文本就越短。
你怎么能提供这样的东西?是否有任何算法可以用来实现这一目标?
我的想法是他们的算法计算句子中标签和名词的数量。然后省略标签/名词数量最少的句子。
那可能是真的吗?还是你有别的想法?
我希望你能帮助我。提前致谢!
sql - sql中的朴素贝叶斯计算
我想使用朴素贝叶斯将文档分类为数量相对较多的类。我希望根据该文章是否与已正确验证该实体的文章相似,来确认文章中提及的实体名称是否真的是该实体。
比如说,我们在一篇文章中找到了“通用汽车”这一文本。我们有一组数据,其中包含文章和其中提到的正确实体。因此,如果我们发现新文章中提到的“通用汽车”,它是否应该属于先前数据中包含已知正品的那类文章提及“通用汽车”与未提及该实体的文章类别?
(我不是为每个实体创建一个类,并试图将每篇新文章分类到每个可能的类中。我已经有一种启发式方法来查找实体名称的合理提及,我只想验证有限数量的合理性该方法已经检测到的每篇文章的实体名称提及。)
鉴于潜在的课程和文章的数量非常大,而且朴素贝叶斯相对简单,我想在 sql 中完成整个事情,但是我在评分查询方面遇到了麻烦......
这是我到目前为止所拥有的:
标记数据中的每篇文章都被拆分为不同的单词,并且对于每个实体的每篇文章,每个单词都被添加到each_entity_word
和/或其word_count
递增和doc_count
递增 in entity_word_sum
,两者都相对于 an entity_id
。对于该文章中提到的每个已知实体都重复此操作。
对于每篇文章,无论每个单词中包含的实体如何,total_entity_word
total_entity_word_sum
都类似地递增。
- P(word|any document) 应该等于该
单词
的
word_count
intotal_entity_word
doc_count
total_entity_sum
- P(word|document 提到实体x ) 应该等于
word_count
ineach_entity_word
对于entity_id
x超过doc_count
ineach_entity_sum
对于entity_id
x - P(word|document没有提到实体x ) 应该等于 (
word_count
intotal_entity_word
减去它的word_count
ineach_entity_word
代表那个实体的那个词) 超过 (thedoc_count
intotal_entity_sum
减去doc_count
那个实体 ineach_entity_sum
) - P(文档提及实体x)应该等于
doc_count
该each_entity_sum
实体 id 超过doc_count
intotal_entity_word
- P(文档未提及实体x)应等于 1 减(
doc_count
ineach_entity_sum
代表x的实体 id overdoc_count
intotal_entity_word
)。
对于进来的新文章,将其拆分为单词,然后选择 where word in ('I', 'want', 'to', 'use'...) 反对each_entity_word
or total_entity_word
。在我使用的数据库平台(mysql)中,IN 子句得到了相对较好的优化。
sql 中也没有 product() 聚合函数,所以当然你可以只做 sum(log(x)) 或 exp(sum(log(x))) 来获得 product(x) 的等价物。
因此,如果我收到一篇新文章,将其拆分为不同的单词并将这些单词放入一个大的 IN() 子句和一个潜在的实体 id 进行测试,我怎样才能获得文章落入该实体的朴素贝叶斯概率id在sql中的类?
编辑:
尝试#1: