2012-07-02 10 views
-4

C++에서 ngram을 어떻게 구현할 수 있습니까?Ngram 구현

예 :

TEXT

양방향 그램 : T, TE, EX, XT, T 트라이 그램 : TE, TEX은, EXT, XT, T__

당신을 감사

+6

그래서 정말 코드 작성 서비스가 아닙니다. 너 뭐 해봤 니? –

+0

그 ngrams 코드를 작성하려고했습니다. 나는 그 문장을 한 문장으로 토큰화할 수 있지만, 나는 이것을 할 수 없다. 거기에 대한 준비가 라이브러리가 있습니까? –

+1

ngram은 길이가 n 인 부분 문자열입니다. 문제가 무엇인지는 완전히 분명하지 않습니다. 문자열에서 부분 문자열을 추출하는 것은 문제가되지 않습니까? –

답변

1

library 유용 할 수 있습니다 :

,536을 ngrams

문자 또는 단어 ngram 분석을위한 C++ 패키지. 더 빠른 ngram 주파수를 위해 해싱 테이블 대신 터너리 검색 트리를 사용합니다. 카운팅. 단어는 고유 한 ID로 변환되고 더 작은 숫자로 으로 인코딩됩니다. Dr. Vlado Keselj 's Text-Ngrams 1.6을 부분적으로 구현 한 것으로 perl에서 매우 유연한 Ngram 패키지입니다.

예 :

 

$ 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. 
+0

고마워요. 어떻게 사용할 수 있습니까? –

+0

지금은 더 혼란 스럽습니다 :/ –

+0

소스, 포함 된 라이브러리입니다. 패키지에는 'ngrams'라는 샘플 애플리케이션이 있습니다. 'make'를 사용하여 라이브러리 및 샘플 응용 프로그램을 빌드 할 수 있습니다. 그림과 같이 'tst'라는 테스트 파일을 사용하여 샘플 애플리케이션을 실행할 수 있습니다.이 파일은 샘플 문자열 'TEST'를 포함합니다. –