成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關(guān)于自然語(yǔ)言處理之One Hot模型

人工智能 自然語(yǔ)言處理
顧名思義,單熱表示從一個(gè)零向量開(kāi)始,如果單詞出現(xiàn)在句子或文檔中,則將向量中的相應(yīng)條目設(shè)置為 1。

[[421481]]

本文轉(zhuǎn)載自微信公眾號(hào)「python與大數(shù)據(jù)分析」,作者 一只小小鳥(niǎo)鳥(niǎo) 。轉(zhuǎn)載本文請(qǐng)聯(lián)系python與大數(shù)據(jù)分析公眾號(hào)。

最近工作實(shí)在有點(diǎn)忙,前陣子關(guān)于梯度和導(dǎo)數(shù)的事情把人折騰的夠嗆,數(shù)學(xué)學(xué)不好,搞機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)真是頭疼;想轉(zhuǎn)到應(yīng)用層面輕松一下,想到了自然語(yǔ)言處理,one hot模型是基礎(chǔ)也是入門(mén),看起來(lái)很簡(jiǎn)單的一個(gè)列表轉(zhuǎn)矩陣、詞典的功能,想著手工實(shí)現(xiàn)一下,結(jié)果看了一下CountVectorizer,發(fā)現(xiàn)不是那么回事兒,還是放棄了。

顧名思義,單熱表示從一個(gè)零向量開(kāi)始,如果單詞出現(xiàn)在句子或文檔中,則將向量中的相應(yīng)條目設(shè)置為 1。

對(duì)句子進(jìn)行標(biāo)記,忽略標(biāo)點(diǎn)符號(hào),并將所有的單詞都用小寫(xiě)字母表示,就會(huì)得到一個(gè)大小為 8 的詞匯表: {time, fruit, flies, like, a, an, arrow, banana} 。所以,我們可以用一個(gè)八維的單熱向量來(lái)表示每個(gè)單詞。在本書(shū)中,我們使用 1[w] 表示標(biāo)記/單詞 w 的單熱表示。

對(duì)于短語(yǔ)、句子或文檔,壓縮的單熱表示僅僅是其組成詞的邏輯或的單熱表示。短語(yǔ) like a banana 的單熱表示將是一個(gè) 3×8 矩陣,其中的列是 8 維的單熱向量。通常還會(huì)看到“折疊”或二進(jìn)制編碼,其中文本/短語(yǔ)由詞匯表長(zhǎng)度的向量表示,用 0 和 1 表示單詞的缺失或存在。like a banana 的二進(jìn)制編碼是: [0,0,0,1,1,0,0,1] 。

  1. from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer 
  2. import seaborn as sns 
  3. import matplotlib.pyplot as plt 
  4. import jieba 
  5. import jieba.analyse 
  6.  
  7. # 單熱表示從一個(gè)零向量開(kāi)始,如果單詞出現(xiàn)在句子或文檔中,則將向量中的相應(yīng)條目設(shè)置為 1。 
  8. # 英文的處理和展示 
  9. corpus = ['Time flies flies like an arrow.''Fruit flies like a banana.'
  10. one_hot_vectorizer = CountVectorizer(binary=True
  11. one_hot = one_hot_vectorizer.fit_transform(corpus).toarray() 
  12. sns.heatmap(one_hot, annot=True, cbar=False, yticklabels=['Sentence 1''Sentence 2']) 
  13. plt.show() 

  1. # 中文的處理和展示 
  2. # 獲取停用詞列表 
  3. def get_stopwords_list(stopwordfile): 
  4.     stopwords = [line.strip() for line in open(stopwordfile, encoding='UTF-8').readlines()] 
  5.     return stopwords 
  6.  
  7. # 移除停用詞 
  8. def movestopwords(sentence): 
  9.     stopwords = get_stopwords_list('stopwords.txt')  # 這里加載停用詞的路徑 
  10.     santi_words = [x for x in sentence if len(x) > 1 and x not in stopwords] 
  11.     return santi_words 
  12.  
  13. # 語(yǔ)料 
  14. corpus = ["小明碩士畢業(yè)于中國(guó)科學(xué)院計(jì)算所,后在日本京都大學(xué)深造。"
  15.           "小王本科在清華大學(xué),后在南京計(jì)算所工作和深造,后在日本早稻田大學(xué)深造"
  16.           "小李本科在清華大學(xué),碩士畢業(yè)于中國(guó)科學(xué)院計(jì)算所,博士在南京大學(xué)"
  17. newcorpus = [] 
  18. for str in corpus: 
  19.     orgwordlist = jieba.lcut(str)  # jieba分詞 
  20.     wordlist = movestopwords(orgwordlist)  # 移除停用詞 
  21.     newword = " ".join(wordlist)  # 按照語(yǔ)料庫(kù)要求進(jìn)行空格分隔 
  22.     newcorpus.append(newword)  # 按照語(yǔ)料庫(kù)要求轉(zhuǎn)換成列表 
  23. # newcorpus 
  24. # ['小明 碩士 畢業(yè) 中國(guó)科學(xué)院 計(jì)算所 日本京都大學(xué) 深造'
  25. '小王 本科 清華大學(xué) 南京 計(jì)算所 工作 深造 日本早稻田大學(xué) 深造'
  26. '小李 本科 清華大學(xué) 碩士 畢業(yè) 中國(guó)科學(xué)院 計(jì)算所 博士 南京大學(xué)'
  27. one_hot_vectorizer = CountVectorizer(binary=True)  # 創(chuàng)建詞袋數(shù)據(jù)結(jié)構(gòu) 
  28. one_hot = one_hot_vectorizer.fit_transform(newcorpus).toarray()  # 轉(zhuǎn)換語(yǔ)料,并矩陣化 
  29. # 下面為熱詞的輸出結(jié)果 
  30. # one_hot_vectorizer.vocabulary_ 
  31. # {'小明': 4, '碩士': 14, '畢業(yè)': 11, '中國(guó)科學(xué)院': 0, '計(jì)算所': 15, '日本京都大學(xué)': 8, '深造': 12, '小王': 6, '本科': 10, '清華大學(xué)': 13, '南京': 1, '工作': 7, '日本早稻田大學(xué)': 9, '小李': 5, '博士': 3, '南京大學(xué)': 2} 
  32. # one_hot_vectorizer.get_feature_names() 
  33. # ['中國(guó)科學(xué)院''南京''南京大學(xué)''博士''小明''小李''小王''工作''日本京都大學(xué)''日本早稻田大學(xué)''本科''畢業(yè)''深造''清華大學(xué)''碩士''計(jì)算所'
  34. # one_hot 
  35. # [[1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 1] 
  36. #  [0 1 0 0 0 0 1 1 0 1 1 0 1 1 0 1] 
  37. #  [1 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1]] 
  38. sns.set_style({'font.sans-serif': ['SimHei''Arial']}) 
  39. sns.heatmap(one_hot, annot=True, cbar=False, xticklabels=one_hot_vectorizer.get_feature_names(), 
  40.             yticklabels=['語(yǔ)句1''語(yǔ)句2''語(yǔ)句3']) 
  41. plt.show() 

IDF 表示懲罰常見(jiàn)的符號(hào),并獎(jiǎng)勵(lì)向量表示中的罕見(jiàn)符號(hào)。符號(hào) w 的 IDF(w) 對(duì)語(yǔ)料庫(kù)的定義為其中 n[w] 是包含單詞 w 的文檔數(shù)量, N 是文檔總數(shù)。TF-IDF 分?jǐn)?shù)就是 TF(w) * IDF(w) 的乘積。首先,請(qǐng)注意在所有文檔(例如, n[w] = N ), IDF(w) 為 0, TF-IDF 得分為 0,完全懲罰了這一項(xiàng)。其次,如果一個(gè)術(shù)語(yǔ)很少出現(xiàn)(可能只出現(xiàn)在一個(gè)文檔中),那么 IDF 就是 log n 的最大值

  1. tfidf_vectorizer = TfidfVectorizer()  # 創(chuàng)建詞袋數(shù)據(jù)結(jié)構(gòu) 
  2. tfidf = tfidf_vectorizer.fit_transform(newcorpus).toarray()  # 轉(zhuǎn)換語(yǔ)料,并矩陣化 
  3. # 下面為熱詞的輸出結(jié)果 
  4. # tfidf_vectorizer.vocabulary_ 
  5. '小明': 4, '碩士': 14, '畢業(yè)': 11, '中國(guó)科學(xué)院': 0, '計(jì)算所': 15, '日本京都大學(xué)': 8, '深造': 12, '小王': 6, '本科': 10, '清華大學(xué)': 13, '南京': 1, '工作': 7, '日本早稻田大學(xué)': 9, '小李': 5, '博士': 3, '南京大學(xué)': 2} 
  6. # tfidf_vectorizer.get_feature_names() 
  7. # ['中國(guó)科學(xué)院''南京''南京大學(xué)''博士''小明''小李''小王''工作''日本京都大學(xué)''日本早稻田大學(xué)''本科''畢業(yè)''深造''清華大學(xué)''碩士''計(jì)算所'
  8. # tfidf 
  9. # [[0.35221512 0.         0.         0.         0.46312056 0.  0.         0.         0.46312056 0.         0.        0.35221512  0.35221512 0.         0.35221512 0.27352646] 
  10. #  [0.         0.35761701 0.         0.         0.         0.  0.35761701 0.35761701 0.         0.35761701 0.27197695 0.  0.54395391 0.27197695 0.         0.21121437] 
  11. #  [0.30443385 0.         0.40029393 0.40029393 0.         0.40029393  0.         0.         0.         0.         0.30443385 0.30443385  0.         0.30443385 0.30443385 0.23642005]] 
  12. sns.heatmap(tfidf, annot=True, cbar=False, xticklabels=tfidf_vectorizer.get_feature_names(), 
  13.             yticklabels=['語(yǔ)句1''語(yǔ)句2''語(yǔ)句3'], vmin=0, vmax=1, cm 

 

責(zé)任編輯:武曉燕 來(lái)源: python與大數(shù)據(jù)分析
相關(guān)推薦

2021-05-18 07:15:37

Python

2021-05-13 07:17:13

Snownlp自然語(yǔ)言處理庫(kù)

2018-02-27 09:32:13

神經(jīng)網(wǎng)絡(luò)自然語(yǔ)言初探

2022-04-22 09:00:00

自然語(yǔ)言處理HMMCRF

2022-04-11 09:30:00

自然語(yǔ)言HMM深度學(xué)習(xí)

2020-04-24 10:53:08

自然語(yǔ)言處理NLP是人工智能

2024-02-05 14:18:07

自然語(yǔ)言處理

2021-05-17 09:00:00

自然語(yǔ)言人工智能技術(shù)

2017-10-19 17:05:58

深度學(xué)習(xí)自然語(yǔ)言

2024-04-24 11:38:46

語(yǔ)言模型NLP人工智能

2023-08-07 08:41:45

自然語(yǔ)言模型因果推理

2025-05-28 01:50:00

2021-06-28 10:10:42

人工智能AI自然語(yǔ)言

2017-04-17 15:03:16

Python自然語(yǔ)言處理

2017-05-05 15:34:49

自然語(yǔ)言處理

2023-05-30 14:39:34

ChatGPT-4NLP

2020-02-25 23:28:50

工具代碼開(kāi)發(fā)

2020-02-25 12:00:53

自然語(yǔ)言開(kāi)源工具

2021-11-12 15:43:10

Python自然語(yǔ)言數(shù)據(jù)

2017-06-20 11:00:13

大數(shù)據(jù)自然語(yǔ)言文本分類(lèi)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩天堂av| 国产在线观看av | 精品视频一区二区三区 | av网站免费看| 成人午夜高清 | 中文字幕在线观看视频一区 | 在线观看黄视频 | 91就要激情 | 国产资源在线观看 | 在线播放国产一区二区三区 | 国产精品电影网 | av黄色在线| 免费成人国产 | 草久在线视频 | 亚洲品质自拍视频网站 | 色综合美女| 日韩成人精品一区 | 久久国产三级 | 黄片毛片免费看 | 九热在线 | 免费能直接在线观看黄的视频 | 欧美大片一区 | 成人午夜精品 | 免费视频一区二区 | 国产日韩精品视频 | 久久久久久久久久久久91 | 午夜影院在线观看免费 | 欧美一区二区在线观看 | 四虎av电影 | 国产www.| av网站在线看 | 在线国产小视频 | 国产精品黄视频 | 精品成人在线观看 | 99视频精品 | 久久久久久久久久久一区二区 | 欧美久久一区二区 | 成人毛片一区二区三区 | 日本欧美大片 | 中文字幕亚洲精品 | 欧美一级欧美三级在线观看 |