jupyter_文本特征抽取_1最基础例子

from sklearn.feature_extraction.text import CountVectorizer

vectorizer=CountVectorizer(min_df=1)

print(vectorizer)

CountVectorizer(analyzer=u'word', binary=False, decode_error=u'strict',
        dtype=<type 'numpy.int64'>, encoding=u'utf-8', input=u'content',
        lowercase=True, max_df=1.0, max_features=None, min_df=1,
        ngram_range=(1, 1), preprocessor=None, stop_words=None,
        strip_accents=None, token_pattern=u'(?u)\\b\\w\\w+\\b',
        tokenizer=None, vocabulary=None)

#列出所有的帖子
posts=["How to format my disk","hard disk format","I like you!","Like is What","you like who?"]
#对于帖子进行词袋转化
x=vectorizer.fit_transform(posts)

#x为输出的几篇文章中的词频统计情况
print x

  (0, 0)    1
  (0, 6)    1
  (0, 1)    1
  (0, 7)    1
  (0, 3)    1
  (1, 2)    1
  (1, 0)    1
  (1, 1)    1
  (2, 10)   1
  (2, 5)    1
  (3, 8)    1
  (3, 4)    1
  (3, 5)    1
  (4, 9)    1
  (4, 10)   1
  (4, 5)    1



print vectorizer.get_feature_names()

[u'disk', u'format', u'hard', u'how', u'is', u'like', u'my', u'to', u'what', u'who', u'you']



print (x.toarray())

[[1 1 0 1 0 0 1 1 0 0 0]
 [1 1 1 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 1 0 0 0 0 1]
 [0 0 0 0 1 1 0 0 1 0 0]
 [0 0 0 0 0 1 0 0 0 1 1]]



#显示样本数和特征个数
num_samples,num_features=x.shape
print("#samples: %d ,#features: %d" % (num_samples,num_features))

#samples: 5 ,#features: 11



#针对新帖子的向量化
newpost="how to format my computer's disk"
new_post_vec=vectorizer.transform([newpost])

#输出新帖子的向量
print (new_post_vec.toarray())

[[1 1 0 1 0 0 1 1 0 0 0]]



#根据输出可以确认,新文章中的新词汇不会被学习
print(new_post_vec.toarray().shape)

(1L, 11L)



##################################################################################################
#定义文章向量相似度,采用词频向量的欧式距离
import scipy as sp
def dist_raw(v1,v2):
    delta=v1-v2
    return sp.linalg.norm(delta)
test_v1=sp.array([0,0])
test_v2=sp.array([1,2])
#计算欧式距离
print (dist_raw(test_v1,test_v2))
#欧式距离,即sp.sqrt(sp.square(1-0)+sp.square(2-0))
print sp.sqrt(5)

2.2360679775
2.2360679775



#计算 new_post同所有帖子的欧式距离(dist_raw),记录最相近的一个
import sys
best_doc=None
best_dist=sys.maxint
best_i=None
for i in range(0,num_samples):
    post=posts[i]
    if post==newpost:
        continue
    post_vec=x.getrow(i)
    print("post_vec's shape:%s, new_post_vec's shape:%s" %(post_vec.shape,new_post_vec.shape))
    dist=dist_raw(post_vec.toarray(),new_post_vec.toarray())
    print "=== Post %i with dist=%.2f: %s" %(i,dist,post)
    if dist<best_dist:
        best_dist=dist
        best_i=i
print ("newpost :%s" % newpost)
print ("Best post is %i with dist=%.2f. Post Content:%s" %(best_i,best_dist,posts[best_i]))

post_vec's shape:(1, 11), new_post_vec's shape:(1, 11)
=== Post 0 with dist=0.00: How to format my disk
post_vec's shape:(1, 11), new_post_vec's shape:(1, 11)
=== Post 1 with dist=2.00: hard disk format
post_vec's shape:(1, 11), new_post_vec's shape:(1, 11)
=== Post 2 with dist=2.65: I like you!
post_vec's shape:(1, 11), new_post_vec's shape:(1, 11)
=== Post 3 with dist=2.83: Like is What
post_vec's shape:(1, 11), new_post_vec's shape:(1, 11)
=== Post 4 with dist=2.83: you like who?
newpost :how to format my computer's disk
Best post is 0 with dist=0.00. Post Content:How to format my disk



#本Notebook,通过最简单情况下进行贴子相似性分析
#下一Notebook,说明通过目录读取;对于词频向量的归一等内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容