如何在C ++中实现ngrams?
例如;
TEXT
bi-gram: T,TE,EX,XT,T tri-gram: TE,TEX,EXT,XT ,T __
谢谢
答案 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.