我一直在开发一个投资组合管理工具的内部网站.有很多文本数据,公司名称等.我对一些搜索引擎能够快速回复查询的印象非常深刻,"你的意思是:xxxx".
我需要能够智能地进行用户查询并不仅响应原始搜索结果,还要回答"你的意思是?" 当有极有可能的替代答案等时作出回应
[我正在开发ASP.NET(VB - 不要反对我!)]
更新:好的,如果没有数百万"无偿用户",我怎么能模仿这个?
我很好奇是否存在通过使用一些权重计算,出现率或其他工具从给定文本生成关键字/标签的算法/方法.
另外,如果您为此指出任何基于Python的解决方案/库,我将不胜感激.
谢谢
您是否有一些建议或阅读如何为机器学习任务设计功能?即使对于神经网络,良好的输入特征也很重要.所选择的特征将影响所需数量的隐藏神经元和所需数量的训练样例.
以下是一个示例问题,但我对一般的特征工程感兴趣.
pattern-recognition artificial-intelligence classification machine-learning neural-network
我正在为我正在上大学课做一个项目.
我正在使用PHP构建一个简单的Web应用程序,根据一组字典将推文分类为"积极"(或快乐)和"消极"(或悲伤).我现在想到的算法是朴素贝叶斯分类器或决策树.
但是,我找不到任何帮助我进行严肃语言处理的PHP库.Python有NLTK(http://www.nltk.org).PHP有什么类似的吗?
我打算使用WEKA作为Web应用程序的后端(通过在PHP中从命令行调用Weka),但它看起来效率不高.
你知道我应该为这个项目使用什么吗?或者我应该切换到Python?
谢谢
我有大约500字的短篇小说,我想把它们分成20个类别中的一个:
我可以对其中的一大堆进行手工分类,但我希望实现机器学习以最终猜测类别.什么是最好的方法来解决这个问题?我应该使用机器学习的标准方法吗?我认为决策树不会很好,因为它是文本数据......我在这个领域是全新的.
任何帮助将不胜感激,谢谢!
我想知道是否有人熟悉算法句子否定的任何尝试.
例如,给出一个像"这本书好"的句子,提供任意数量的替代句子,意思相反,如"这本书不好",甚至"这本书不好".
显然,以高精度完成这一点可能超出了当前NLP的范围,但我确信已经有一些关于这个问题的工作.如果有人知道任何工作,请指点我一些文件?
每一个人.我对分类算法的主题完全陌生,需要一些关于从哪里开始"严肃阅读"的好指示.我现在正在发现,机器学习和自动分类算法是否值得添加到我的某些应用程序中.
我已经通过Z. Michalewicz和D. Fogel(特别是关于使用神经元网络的线性分类器的章节)扫描了"如何解决它:现代启发式",并且在实践方面,我目前正在查看WEKA工具包源代码码.我的下一个(计划好的)步骤是深入了解贝叶斯分类算法的领域.
不幸的是,我在这个领域缺乏一个认真的理论基础(更不用说,到目前为止已经以任何方式使用过它),所以任何关于下一步看的提示都会受到赞赏; 特别是,对可用的分类算法的良好介绍将是有帮助的.作为一名工匠而不是理论家,越实用,越好......
提示,有人吗?
pattern-recognition artificial-intelligence classification machine-learning weka
我有POS用nltk.pos_tag()标记了一些单词,因此它们被赋予了treebank标签.我想使用已知的POS标签对这些词进行词形变换,但我不确定如何.我正在看Wordnet lemmatizer,但我不知道如何将树库POS标签转换为lemmatizer接受的标签.我怎样才能简单地执行这种转换,或者是否有使用树库标签的变形器?
我一直在玩自然语言解析树并以各种方式操纵它们.我一直在使用斯坦福大学的Tregex和Tsurgeon工具,但代码很混乱,并不适合我的Python环境(这些工具是Java,不适合调整).我想要一个工具集,当我需要更多功能时,它可以轻松进行黑客攻击.还有其他工具非常适合在树上进行模式匹配,然后操纵那些匹配的分支吗?
例如,我想将以下树作为输入:
(ROOT
(S
(NP
(NP (NNP Bank))
(PP (IN of)
(NP (NNP America))))
(VP (VBD used)
(S
(VP (TO to)
(VP (VB be)
(VP (VBN called)
(NP
(NP (NNP Bank))
(PP (IN of)
(NP (NNP Italy)))))))))))
Run Code Online (Sandbox Code Playgroud)
和(这是一个简化的例子):
例如,采取树的这一部分:
(NP
(NP (NNP Bank))
(PP (IN of)
(NP (NNP America))))
Run Code Online (Sandbox Code Playgroud)
把它变成这个:
(NP
(NP (NNP Bank) (IN of) (NP (NNP America))))
Run Code Online (Sandbox Code Playgroud)
由于我的输入树是S表达式,我考虑使用Lisp(嵌入到我的Python程序中)但是我已经写了很长时间,我在Lisp中编写了一些重要内容,我不知道从哪里开始.
什么是描述模式的好方法?什么是描述操纵的好方法?什么是思考这个问题的好方法?
我正在寻找一种在Java中存储密集可变长度比特阵的非常紧凑的方法.现在,我正在使用BitSet
,但它似乎平均使用1.5*n位存储空间用于大小为n的位向量.通常,这不是问题,但在这种情况下,存储的比特阵列是应用程序的内存占用量非常重要的部分.因此,让它们变得更小一点真的很有帮助.
BitSet所需的空间似乎是由于用于支持数据结构的long数组在每次扩展以容纳更多位时往往会加倍:
// BitSet's resizing code
private void ensureCapacity(int wordsRequired) {
if (words.length < wordsRequired) {
// Allocate larger of doubled size or required size
int request = Math.max(2 * words.length, wordsRequired);
words = Arrays.copyOf(words, request);
sizeIsSticky = false;
}
}
Run Code Online (Sandbox Code Playgroud)
我可以编写自己的BitSet替代实现,更加保守地扩展后端数据结构.但是,如果我不需要,我真的很讨厌复制标准类库中已有的功能.
nlp ×7
nltk ×3
python ×2
weka ×2
algorithm ×1
bitarray ×1
bitset ×1
data-mining ×1
java ×1
linguistics ×1
lisp ×1
memory ×1
negation ×1
php ×1
s-expression ×1
stanford-nlp ×1
tags ×1
text-search ×1