Ngram实施

时间:2012-07-02 19:07:37

标签: c++ n-gram

如何在C ++中实现ngrams?

例如

;

TEXT

bi-gram: T,TE,EX,XT,T tri-gram: TE,TEX,EXT,XT ,T __

谢谢

1 个答案:

答案 0 :(得分:1)

library可能有用:

  

n元语法

     

C ++中用于字符或单词ngram分析的包。它使用三元   搜索树而不是散列表以获得更快的ngram频率   数数。单词将转换为唯一ID并编码为更多   紧凑的256个整数。这是Vlado博士的部分实施   Keselj的Text-Ngrams 1.6,这是一个非常灵活的Ngram包   的Perl。

示例:


$ cat tst
TEST

$ ./ngrams --type=character --n=3 --in=tst
ngrams have been generated, start outputing.
BEGIN OUTPUT
Total 11 unique ngram in 12 ngrams.
Total 11 unique ngram in 12 ngrams.
1-GRAMS ( Total 4 unique ngrams in 5 grams )
1-GRAMS ( Total 4 unique ngrams in 5 grams )
------------------------
T   2
E   1
S   1
_   1

2-GRAMS ( Total 4 unique ngrams in 4 grams )
2-GRAMS ( Total 4 unique ngrams in 4 grams )
------------------------
ES  1
ST  1
TE  1
T_  1

3-GRAMS ( Total 3 unique ngrams in 3 grams )
3-GRAMS ( Total 3 unique ngrams in 3 grams )
------------------------
EST 1
ST_ 1
TES 1

Subtotal: 0 seconds for generating ngrams.
Subtotal: 0 seconds for outputing ngrams.
Total 0 seconds.