好的,所以我一直关注TF*IDF上的这两篇文章,但我很困惑:http://css.dzone.com/articles/machine-learning-text-feature
基本上,我想创建一个包含多个文档搜索的搜索查询.我想使用scikit-learn工具包以及Python的NLTK库
问题是我没有看到两个TF*IDF向量来自哪里.我需要一个搜索查询和多个文档来搜索.我想我会针对每个查询计算每个文档的TF*IDF分数,并找出它们之间的余弦相似度,然后通过按降序对分数进行排序来对它们进行排名.但是,代码似乎没有提出正确的向量.
每当我将查询减少到只有一个搜索时,它返回一个巨大的0列表,这真的很奇怪.
这是代码:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from nltk.corpus import stopwords
train_set = ("The sky is blue.", "The sun is bright.") #Documents
test_set = ("The sun in the sky is bright.") #Query
stopWords = stopwords.words('english')
vectorizer = CountVectorizer(stop_words = stopWords)
transformer = TfidfTransformer()
trainVectorizerArray = vectorizer.fit_transform(train_set).toarray()
testVectorizerArray = vectorizer.transform(test_set).toarray()
print 'Fit Vectorizer to train set', trainVectorizerArray
print 'Transform Vectorizer to test set', testVectorizerArray
transformer.fit(trainVectorizerArray)
print transformer.transform(trainVectorizerArray).toarray()
transformer.fit(testVectorizerArray)
tfidf = transformer.transform(testVectorizerArray)
print …
Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用Sublime Text 2,并且想知道,如果有一种方法可以改变集成的python解释器以定位系统python安装而不是Sublime附带的那个,那么它会让它成为一个功能齐全的python IDE.原因是因为我想使用python解释器在计算机上使用我的python库.
我知道使用我的python版本在sublime中运行python代码,如下所示:如何从Sublime Text 2运行Python代码?
但是,这不会更改您正在运行的python解释器的版本.
有任何想法吗?
好的,所以我有点困惑.然而,这应该是一个简单明了的问题.
在针对整个语料库计算文档的TF-IDF矩阵之后,我得到了与此非常类似的结果:
array([[ 0.85..., 0. ..., 0.52...],
[ 1. ..., 0. ..., 0. ...],
[ 1. ..., 0. ..., 0. ...],
[ 1. ..., 0. ..., 0. ...],
[ 0.55..., 0.83..., 0. ...],
[ 0.63..., 0. ..., 0.77...]])
Run Code Online (Sandbox Code Playgroud)
如何使用此结果获取与搜索查询最相似的文档?基本上我正在尝试为维基百科重新创建一个搜索栏.根据搜索查询,我想从维基百科返回最相关的文章.在这种情况下,有6篇文章(行),搜索查询包含3个单词(列).
我是否将所有结果添加到列中或添加所有行?更重要的值是最相关的还是最相关的最低值?
我有一个非常具体的问题,我需要知道如何交换列表或元组中的元素.我有一个名为board state的列表,我知道需要交换的元素.我该如何交换它们?在具有二维数组的java中,我可以轻松地执行标准交换技术,但是在这里它说元组赋值是不可能的.
这是我的代码:
board_state = [(0, 1, 2), (3, 4, 5), (6, 7, 8)]
new = [1, 1] # [row, column] The '4' element here needs to be swapped with original
original = [2, 1] # [row, column] The '7' element here needs to be swapped with new
Run Code Online (Sandbox Code Playgroud)
结果应该是:
board_state = [(0, 1, 2), (3, 7, 5), (6, 4, 8)]
Run Code Online (Sandbox Code Playgroud)
我如何交换?
在wxPython中使用&符有什么意义?我几乎在所有教程中都看到了。例如,他们使用:
menubar.Append(fileMenu, '&File')
Run Code Online (Sandbox Code Playgroud)
代替:
menubar.Append(fileMenu, 'File')
Run Code Online (Sandbox Code Playgroud)
有什么不同?我是否应该始终使用与号命名?
顺便说一句,我从这个著名的wxPython教程中找到了这些示例:http: //zetcode.com/wxpython/menustoolbars/
如果我有一个功能:
def add(**kwargs):
for key, value in kwargs.iteritems():
print "%s = %s" % (key, value)
Run Code Online (Sandbox Code Playgroud)
如何动态地将keyworded参数添加到此函数中?我正在使用Python构建HTML生成器,因此我需要能够根据用户想要启用的属性添加keyworded参数.
例如,如果用户想要在表单中使用name属性,他们应该能够在存储的关键字参数列表中声明它(不知道如何执行此操作).此存储的关键字参数列表还应包含变量的值.例如,如果用户希望属性名称为"Hello",它应该看起来像并传递给函数,如下所示:
name = "Hello" (example)
Run Code Online (Sandbox Code Playgroud)
如果你们需要更多信息,请告诉我.谢谢!
我想这是一个非常简单的答案,我只是想快速回复.那么为什么python程序会创建3个文件呢?例如,我有3个名为的文件:
"ReadSchedule.py"
"ReadSchedule.py〜"
"#ReadSchedule.py#"
这是什么原因?每个文件都做自己的事吗?
我的下一个项目要求我拥有高效的无线传感器模块.基本上,这些模块应该能够读取温度,光线等传感器数据并通过其无线发射器/接收器输出.它可以是任何传感器,也必须是发射器和接收器.
我怎样才能达到很低的功率?
我希望这个设置可以运行一年,也许是六个月但是我现在使用Arduino芯片的原型和每分钟发送数据的XBee模块可以在一小时内清除9 V电池.我已经阅读了很多关于这个问题的内容,并且想知道XBee是否是不可能的.我担心的不是微控制器,它是如何在保持功耗预算的同时实现高效的无线通信.基本上,那里最好的低功耗无线模块是什么?
python ×5
nlp ×2
nltk ×2
scikit-learn ×2
tf-idf ×2
arduino ×1
editor ×1
electronics ×1
sublimetext2 ×1
wireless ×1
wxpython ×1
xbee ×1