日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

九、N-gram语言模型

發布時間:2024/9/16 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 九、N-gram语言模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.語言模型

語言模型的作用是根據文本輸入 ,計算文本內容是句子的概率。

2 N-gram模型介紹

2.1 語言模型概念

  • 如果我們有一個由m 個詞組成的序列(或者說一個句子),我們希望計算句子的概率。根據鏈式規則,可得
  • 根據馬爾可夫假設可得:

2.2 N-gram模型簡介

  • N-gram模型是一種語言模型(Language Model,LM),語言模型是一個基于概率的判別模型,它的輸入是一句話(單詞的順序序列),輸出是這句話的概率,即這些單詞的聯合概率(joint probability)。

2.3 N-gram模型定義

  • 當n=1時,一個一元模型為:
  • 當n=2時,一個二元模型為:
  • 當n=3時,一個三元模型為 :

3 N-gram語言模型

3.1 N-gram計算條件概率

  • 如何計算公式中每一項條件概率。
  • 極大似然估計:頻數項

3.2 N-gram概率計算實例

  • 以Bi-gram為例,假設由三句話組成的語料庫:
  • 容易統計,“I”出現了3次,“I am”出現了2次,因此可以計算概率:
  • 同理:還能計算出如下概率:

4 N-gram模型的實現

4.1 N-gram語言模型構建的具體過程

  • 導入文本特征抽取模塊
  • 加載語料庫
  • 構建N-gram模型
  • 文本轉換為向量表示

4.2 步驟

步驟1:導入文本特征抽取模塊

from sklearn.feature_extraction.text import CountVectorizer

步驟2:加載語料庫

# 語料庫 text = ["orange banana apple grape","banana apple apple","grape",'orange apple']

步驟3:N-gram模型構建

# ngram_range=(2, 2)表明適應2-gram;decode_error="ignore":忽略異常字符, ngram_vectorizer = CountVectorizer(ngram_range=(2, 2),decode_error="ignore" )

步驟4:文本轉化為向量表示

# 將文本轉換為對應的向量(數字)表示 x1 = ngram_vectorizer.fit_transform(text) print(x1.toarray()) print(ngram_vectorizer.vocabulary_)

4.5 運行結果

# print(x1.toarray())運行結果: [[0 1 1 0 1][1 0 1 0 0][0 0 0 0 0][0 0 0 1 0]] # print(ngram_vectorizer.vocabulary_)運行結果: {'orange banana': 4, 'banana apple': 2, 'apple grape': 1, 'apple apple': 0, 'orange apple': 3}

總結

以上是生活随笔為你收集整理的九、N-gram语言模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。