「組み込みmecab使用例」の編集履歴(バックアップ)一覧に戻る
:-dlib_require(mecab).
test:-init, see('Input.txt',S), repeat,gets(S,X,N),f(X),N=:=1, seen(S),told. init:- [-'my_mecab.pl'], kanji_mode(_,on), abolish(mecabID,2),mecab_init. f([]):-!. f(X):-!,name(Y,X),is_atom(Y),mecab_get(Y,B),nlist(B,C),f2(C). is_atom(Y):-var(Y),!,fail. is_atom(Y):-integer(Y),!,fail. f2([]):-!. f2([[A,'名詞'|_]|L]):-!,tella('Output.txt'),write(A),nl,told,f2(L). f2([A|L]):-!,f2(L). %%util gets(S,L,N):-get0(S,X),gets(S,X,L,N). gets(S,4,[],1):-!. gets(S,26,[],1):-!. gets(S,10,[],0):-!. gets(S,13,[],0):-!. gets(S,31,[],0):-!. gets(S,14909570,[14909570],0):-!. gets(S,14909569,[14909569],0):-!. gets(S,X,[X|L],N):-gets(S,L,N).
%my_mecab.pl /* %組み込みmecab述語一覧 mecab_new mecab_strerror mecab_destroy mecab_sparse_tonode mecab_sparse_tostr mecab_nbest_init mecab_nbest_next_tonode mecab_nbest_end mecab_version */ %use mecab with single dictionary :- extern det:mecab_sparse_tonode/4. :- extern det:mecab_new/2. :- extern det:mecab_destroy/1. mecab_init:-mecab_new(M,['M','-d','/dictionary']),assertz(mecabID(M,3)). %3=col size mecab_get(S,N):-mecabID(M,A),!,mecab_sparse_tonode(M,S,A,N). mecab_end:-retract(mecabID(M,S)),!,mecab_destroy(M). nativ_mecab_formattype([ %unk A,[ %00.被形態素単語 B, %01.品詞大分類 ;pos1 C, %02.品詞中分類 ;pos2 D, %03.品詞小分類 ;pos3 E, %04.品詞細分類 ;pos4 F, %05.活用型 ;cType G %06.活用形 ;cForm ]],[A,B,C,D,E,F,G,'*','*','*']) :-!. nativ_mecab_formattype([ %nativ-mecab function A,[ %00.被形態素単語 B, %01.品詞大分類 ;pos1 C, %02.品詞中分類 ;pos2 D, %03.品詞小分類 ;pos3 E, %04.品詞細分類 ;pos4 F, %05.活用型 ;cType G, %06.活用形 ;cForm H, %07.語彙素読み ;lForm I, %08.語彙素(語彙素表記+語彙素細分類);lemma J, %09.書字形出現形 ;orth K, %10.発音形出現形 ;pron L, %11.書字形基本形 ;orthBase M, %12.発音形基本形 ;pronBase N, %13.語種 ;goshu O, %14.語頭変化型 ;iType P, %15.語頭変化形 ;iForm Q, %16.語末変化型 ;fType R, %17.fForm ;fForm S, %18.kana ;kana T, %19.kanaBase ;kanaBase U, %20.form ;form V, %21.formBase ;formBase W, %22.iConType ;iConType X, %23.fConType ;fConType Y, %24.aType ;aType Z, %25.aConType ;aConType AA, %26.aModType ;aModType |_]],[A,B,C,D,E,F,G,H,I,J]).