N Gram的資料結構

2022-09-18 09:39:15 字數 1633 閱讀 7991

[html] view plaincopyprint?

\data\

ngram 1=64000

ngram 2=522530

ngram 3=173445

\1-grams:

-5.24036 'cause -0.2084827

-4.675221 'em -0.221857

-4.989297 'n -0.05809768

-5.365303 'til -0.1855581

-2.111539 0.0

-99 -0.7736475

-1.128404 -0.8049794

-2.271447 a -0.6163939

-5.174762 a's -0.03869072

-3.384722 a. -0.1877073

-5.789208 a.'s 0.0

-6.000091 aachen 0.0

-4.707208 aaron -0.2046838

-5.580914 aaron's -0.06230035

-5.789208 aarons -0.07077657

-5.881973 aaronson -0.2173971

具體說明見 :arpa的n-gram語言模型格式

n-gram的資料結構如下:

typedef struct  

arpalmentry ;

words,表示當前的n-gram所涉及的單詞,如果是1-gram,那就只有乙個,如果是2-gram,那麼words就包括這兩個單詞的序號。

log_bo,表示ngram的回退概率。

log_prob,表示ngram的組合概率。

多個項組成的整個n-gram語言模型的資料結構如下:

[cpp] view plaincopyprint?

class arpalm  

vocab,用於構建語言模型的詞典指標。詞典定義見:詞典記憶體儲存模型

entries,語言模型的所有ngram項,是arpalmentry型別的乙個二維陣列。entries[0]儲存1-gram,entries[1]儲存2-gram,依此類推。

n_ngrams,整型陣列,依次包含1-gram,2-gram,3-gram,....所包含的ngram項個數。

unk_wrd,詞典中可以不在語言模型中的詞。

unk_id,詞典中可以不在語言模型中的詞的id,這個id指定為詞典的最後乙個詞序號。

n_unk_words,在讀語言模型之後,統計在詞典中,但沒有用來建立語言模型的詞個數,如果沒有指定unk_wrd的話,是不允許的,就表示所有的詞典中的詞都應該用來建語言模型。

unk_words,儲存6中統計的詞序號。

words_in_lm,這個標識詞典中的詞是否在語言模型**現。

資料結構 資料結構的概述

一 概述 什麼是資料結構 資料 由有限的符號 比如,0 和 1 具有其自己的結構 操作 和相應的語義 組成的元素的集合。結構 元素之間的關係的集合。資料結構 資訊的一種組織方式,其目的是為了提高演算法的效率,它通常與一組演算法的集合相對應,通過這組演算法集合可以對資料結構中的資料進行某種操作。它用來...

資料結構 資料結構的三大結構

計算機程式設計 資料結構 演算法 資料結構研究變數的管理方式,演算法研究解決特定問題的方法。資料結構分三個層次 邏輯結構 抽象層 物理結構 結構層 運算結構 實現層 邏輯結構指人對資料之間關係的理解和看法,邏輯結構和計算機無關。邏輯結構 1 集合結構 這種結構表示資料可以合併成乙個整體。這是資料之間...

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...