我尝试了橙色框架的朴素贝叶斯分类.这些方法非常不直观,文档非常无组织.这里有没有人推荐另一个框架?
我现在主要使用NaiveBayesian.我正在考虑使用nltk的NaiveClassification,但他们认为他们不能处理连续变量.
我有什么选择?
我有一个输入文件,其中包含4位小数点的浮点数:
i.e. 13359 0.0000 0.0000 0.0001 0.0001 0.0002` 0.0003 0.0007 ...
Run Code Online (Sandbox Code Playgroud)
(第一个是id).我的类使用的loadVectorsFromFile方法是将它乘以10000然后再乘以int()这些数字.最重要的是,我还遍历每个向量以确保内部没有负值.但是,当我表演时_hclustering,我不断看到错误,"LinkageZ contains negative values".
我认真地认为这是一个错误,因为:
有人能够告诉我为什么我会看到这个奇怪的错误吗?这是怎么回事造成这种负距离错误?
=====
def loadVectorsFromFile(self, limit, loc, assertAllPositive=True, inflate=True):
"""Inflate to prevent "negative" distance, we use 4 decimal points, so *10000
"""
vectors = {}
self.winfo("Each vector is set to have %d limit in length" % limit)
with open( loc ) as inf:
for line in filter(None, inf.read().split('\n')):
l = line.split('\t')
if limit: …Run Code Online (Sandbox Code Playgroud) 1)我正在使用scipy的hcluster模块.
所以我控制的变量是阈值变量.我怎么知道每个门槛的表现?即在Kmeans中,这种表现将是其质心的所有点的总和.当然,这必须进行调整,因为更多的簇通常是更少的距离.
有没有观察到我可以用hcluster做这件事?
2)我意识到fclusterdata有很多指标可供使用.我正在基于关键术语的tf-idf对文本文档进行聚类.这笔交易是,有些文件比其他文件更长,我认为余弦是一种"规范化"这个长度问题的好方法,因为文件越长,它在n维领域的"方向"应该保持不变,如果他们内容是一致的.有没有其他方法可以建议?我该如何评价?
谢谢
我正在寻找一种构建单词层次结构的方法.
背景:我是一个"业余"自然语言处理爱好者,现在我感兴趣的一个问题是从一组单词中确定单词语义的层次结构.
例如,如果我有一个包含其他人的"超级"表示的集合,即
[cat, dog, monkey, animal, bird, ... ]
Run Code Online (Sandbox Code Playgroud)
我有兴趣使用任何技术,这些技术可以让我提取"动物"这个词,它具有该组中其他词语最有意义和最准确的表示.
注意:它们的含义不同.猫!=狗!=猴子!=动物但是猫是动物的一个子集,而狗是动物的子集.
我知道现在很多人会告诉我使用wordnet.好吧,我会尝试,但我实际上有兴趣做一个特定领域的WordNet不适用的领域,因为:1)Wordnet中找不到大多数单词2)所有单词都是另一种语言; 翻译是可能的,但效果有限.
另一个例子是:
[ noise reduction, focal length, flash, functionality, .. ]
Run Code Online (Sandbox Code Playgroud)
因此功能包括此集合中的所有内容.
我也试过抓取维基百科页面并在td-idf等上应用一些技术,但维基百科页面也没有做太多.
有人可能会告诉我我的研究应朝哪个方向发展吗?(我可以使用任何东西)