小编Mat*_*ien的帖子

我可以在scikit中使用CountVectorizer - 学习计算未用于提取令牌的文档的频率吗?

我一直在和CountVectorizerscikit-learn 一起上课.

据我所知,如果以下面显示的方式使用,最终输出将包含一个包含要素计数或标记的数组.

这些令牌是从一组关键字中提取的,即

tags = [
  "python, tools",
  "linux, tools, ubuntu",
  "distributed systems, linux, networking, tools",
]
Run Code Online (Sandbox Code Playgroud)

下一步是:

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(tokenizer=tokenize)
data = vec.fit_transform(tags).toarray()
print data
Run Code Online (Sandbox Code Playgroud)

我们得到的地方

[[0 0 0 1 1 0]
 [0 1 0 0 1 1]
 [1 1 1 0 1 0]]
Run Code Online (Sandbox Code Playgroud)

这很好,但我的情况有点不同.

我想以与上面相同的方式提取功能,但我不希望这些行data与从中提取功能的文档相同.

换句话说,我怎样才能得到另一组文件的计数,比方说,

list_of_new_documents = [
  ["python, chicken"],
  ["linux, cow, ubuntu"],
  ["machine learning, bird, fish, pig"]
]
Run Code Online (Sandbox Code Playgroud)

得到:

[[0 0 0 1 0 0]
 [0 1 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning tf-idf scikit-learn

41
推荐指数
2
解决办法
8万
查看次数

检查pandas dataframe列中的字符串是否在列表中

如果我有这样的框架

frame = pd.DataFrame({'a' : ['the cat is blue', 'the sky is green', 'the dog is black']})
Run Code Online (Sandbox Code Playgroud)

我想检查这些行中是否包含某个单词我必须这样做.

frame['b'] = frame.a.str.contains("dog") | frame.a.str.contains("cat") | frame.a.str.contains("fish")
Run Code Online (Sandbox Code Playgroud)

frame['b'] 输出:

True
False
True
Run Code Online (Sandbox Code Playgroud)

如果我决定列一个清单

mylist =['dog', 'cat', 'fish']
Run Code Online (Sandbox Code Playgroud)

我如何检查列中是否包含某个单词?

python python-2.7 pandas

38
推荐指数
3
解决办法
6万
查看次数

在MYSQL中删除字符串的一部分

我想删除在特定字段中找到的字符串的一部分.

例如,该字段中的条目可以是"01365320 APS ".我正在考虑删除"APS".

我的问题是,我应该使用:

SELECT SUBSTRING_INDEX('fieldname','APS', 1)
Run Code Online (Sandbox Code Playgroud)

mysql sql string

28
推荐指数
2
解决办法
4万
查看次数

理解sklearn中CountVectorizer中的`ngram_range`参数

我对如何在Python中的scikit-learn库中使用ngrams感到有点困惑,具体来说,这个ngram_range参数在CountVectorizer中是如何工作的.

运行此代码:

from sklearn.feature_extraction.text import CountVectorizer
vocabulary = ['hi ', 'bye', 'run away']
cv = CountVectorizer(vocabulary=vocabulary, ngram_range=(1, 2))
print cv.vocabulary_
Run Code Online (Sandbox Code Playgroud)

给我:

{'hi ': 0, 'bye': 1, 'run away': 2}
Run Code Online (Sandbox Code Playgroud)

在我明显错误的印象中,我会得到unigrams和bigrams,就像这样:

{'hi ': 0, 'bye': 1, 'run away': 2, 'run': 3, 'away': 4}
Run Code Online (Sandbox Code Playgroud)

我正在使用这里的文档:http: //scikit-learn.org/stable/modules/feature_extraction.html

显然,我对如何使用ngrams的理解存在严重错误.也许这个论点没有效果,或者我对一个真正的二元组有一些概念上的问题!我很难过.如果有人提出建议,我会感激不尽.

更新:
我意识到了我的方式的愚蠢.我的印象是ngram_range会影响词汇,而不是语料库.

python n-gram feature-selection scikit-learn

27
推荐指数
1
解决办法
3万
查看次数

MySQL JOIN的评估顺序是什么?

我有以下查询:

SELECT c.*
FROM companies AS c
JOIN users AS u USING(companyid)
JOIN jobs AS j USING(userid)
JOIN useraccounts AS us USING(userid)
WHERE j.jobid = 123;
Run Code Online (Sandbox Code Playgroud)

我有以下问题:

  1. USING语法是否与ON语法同义?
  2. 这些连接是从左到右评估的吗?换句话说,这个查询是否说:x =公司加入用户; y = x JOIN工作; z = y JOIN useraccounts;
  3. 如果问题2的答案是肯定的,那么假设公司表有companyid,userid和jobid列是否安全?
  4. 我不明白WHERE子句在引用别名"j"时如何用于在公司表上选择行

任何帮助,将不胜感激!

mysql sql join

26
推荐指数
2
解决办法
2万
查看次数

是什么让k-medoid中的距离测量"比k-means更好"?

我正在阅读k-means聚类和k-medoid聚类之间的区别.

据推测,在k-medoid算法中使用成对距离度量有一个优点,而不是更熟悉的欧几里德距离型度量平方和来评估我们用k均值找到的方差.显然,这种不同的距离度量会以某种方式降低噪音和异常值.

我已经看到了这个说法,但我还没有看到任何关于这一主张背后的数学的理由.

是什么使k-medoid中常用的成对距离测量更好?更准确地说,缺乏平方项如何使k-medoids具有与取中位数概念相关的理想属性?

cluster-analysis machine-learning data-mining k-means

26
推荐指数
3
解决办法
2万
查看次数

从mysql表中选择特定行

理想情况下,我需要一个相当于的查询

select * from customer where row_number() = 3
Run Code Online (Sandbox Code Playgroud)

但这是非法的.

我无法使用自动增量字段.

row_number()是需要选择的行.

我该怎么做?

编辑:嗯,我使用iSql*plus来练习,并且使用limit和auto_increment由于某种原因是非法的.我最终创建了一个序列和一个触发器,每当有一个条目时,我就将id加1.

mysql select row-number

24
推荐指数
3
解决办法
10万
查看次数

read.csv空白字段为NA

我有制表符分隔的文本文件,名为'a.txt'.D列为空.

 A       B       C    D
10      20     NaN
30              40
40      30      20
20      NA      20
Run Code Online (Sandbox Code Playgroud)

我希望数据框看起来和文本文件一样,在第2行和第2列中有空格.

不幸的是,read.csv正在将所有空白和NA转换为"NA".我想读NA和NaN作为字符.

 b<- read.csv("a.txt",sep="\t", skip =0, header = TRUE, comment.char = "",check.names = FALSE, quote="", )
Run Code Online (Sandbox Code Playgroud)

总结一下:我想在输出文件中复制相同的值而不修改它们:

  • 如果输入中有空白,则输出应为空白.
  • 如果输入具有NA或Nan,则输出还应具有NA或NaN.

r read.csv

23
推荐指数
3
解决办法
7万
查看次数

警告:关闭未使用的连接n

getCommentary=function(){
    Commentary=readLines(file("C:\\Commentary\\com.txt"))
    return(Commentary)
    close(readLines)
    closeAllConnections()
}
Run Code Online (Sandbox Code Playgroud)

我不知道这个功能有什么问题.当我在R中运行它时,它不断给我以下警告:

Warning message:
closing unused connection 5 ("C:\\Commentary\\com.txt") 
Run Code Online (Sandbox Code Playgroud)

warnings r readline

22
推荐指数
1
解决办法
4万
查看次数

如何使用row.names属性在R中对我的数据帧的行进行排序?

我创建了一个随机森林并预测了我的测试集的类,它们在数据帧中幸福地生活:

row.names   class  
564028      1
275747      1
601137      0
922930      1
481988      1
...

row.names属性告诉我在进行各种操作之前哪一行是哪一行,这些操作在进程中扰乱了行的顺序.到现在为止还挺好.

现在,我想对我的预测的准确性有一个普遍的感觉.为此,我需要使用此数据框并根据row.names属性按升序对其重新排序.通过这种方式,我可以将观察结果与行标识进行比较,我已经知道了.

请原谅我提出这样一个基本问题,但对于我的生活,我找不到关于如何完成这项琐碎任务的良好信息来源.

文档恳求我:

使用attr(x, "row.names"),如果你需要获取一个整数值组行的名字.

但这让我一无所获NULL.

我的问题是,row.names在整个工作流程中,我如何使用忠实地跟随我的数据框架的各种形式?这不是它的用途吗?

r dataframe random-forest

18
推荐指数
3
解决办法
5万
查看次数