2016-09-21 35 views
0

我剛剛拿起sklearn,所以請原諒我明目張膽的無知:)...現在我正試圖弄清楚TfidfVectorizer是如何工作的以及如何避免在期間分裂。如何不使用sklearn TfidfVectorizer解析句點?

from sklearn.feature_extraction.text import TfidfVectorizer 

docs= ("'CSC.labtrunk', 'CSC.datacenter', 'CSC.netbu', 'CSC.asr5k.general', 'CSC.ena', 'CSC.embu'", "'CSC.ena'", "'CSC.embu', 'CSC.security', 'CSC.ena'", "'CSC.embu', 'CSC.datacenter', 'CSC.labtrunk', 'CSC.content-security', 'CSC.ena', 'CSC.embu.dev', 'CSC.spv.custom-prods', 'CSC.voice', 'CSC.policy-mgmt', 'CSC.nuova'", "'CSC.embu', 'CSC.sys', 'CSC.policy-mgmt', 'CSC.content-security', 'CSC.datacenter'", "'CSC.asr5k.general'", "'CSC.sys'", "'CSC.labtrunk'")  
    vec = TfidfVectorizer() 
    trfm_data = vec.fit_transform(docs) 
    print trfm_data 

輸出樣本:

(0, 6) 0.200552591995 
    (0, 7) 0.200552591995 
    (0, 8) 0.265074737928 
    (0, 0) 0.265074737928 
    (0, 11) 0.316288846342 
    (0, 4) 0.228737749732 
    (0, 9) 0.228737749732 
    (0, 2) 0.757857197424 


    print vec.inverse_transform(trfm_data) 

輸出樣本:

[u'embu', u'ena', u'general', u'asr5k', u'netbu', u'datacenter', 
     u'labtrunk', u'csc'] 

理想情況下,我想每個項目當作一個字符串,如"'CSC.labtrunk', 'CSC.datacenter', 'CSC.netbu', 'CSC.asr5k.general', 'CSC.ena', 'CSC.embu'"

回答

0

不知道它是否是合適的約定,但我使用了字符串列表而不是字符串元組,並得到了所需的輸出。

樣本數據:

data = ["'CSC.labtrunk', 'CSC.datacenter', 'CSC.netbu', 'CSC.asr5k.general', 'CSC.ena', 'CSC.embu'", "'CSC.ena'", "'CSC.embu', 'CSC.security', 'CSC.ena'", "'CSC.embu', 'CSC.datacenter', 'CSC.labtrunk', 'CSC.content-security', 'CSC.ena', 'CSC.embu.dev', 'CSC.spv.custom-prods', 'CSC.voice', 'CSC.policy-mgmt', 'CSC.nuova'", "'CSC.embu', 'CSC.sys', 'CSC.policy-mgmt', 'CSC.content-security', 'CSC.datacenter'", "'CSC.asr5k.general'", "'CSC.sys'", "'CSC.labtrunk'"] 

vec = TfidfVectorizer(tokenizer=lambda i: i, lowercase=False) 
trfm_data = vec.fit_transform(data) 
data = trfm_data 
trfm_data data 

示例輸出:

[array(['CSC.embu', 'CSC.ena', 'CSC.asr5k.general', 'CSC.netbu', 
     'CSC.datacenter', 'CSC.labtrunk'], 
     dtype='|S20'), array(['CSC.ena'], 
     dtype='|S20'), array(['CSC.security', 'CSC.embu', 'CSC.ena']