このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1267796762/934
#  【 課題 】プログラムはテキストファイル(WordData.dat)を読み込む。 
#  ファイル中の文を解析して単語を取り出し、プログラム中で定義されている検索文字を含む単語を表示する。 
#  【 形態 】1. Javaアプリケーション(main()で開始)  
#  【 期限 】2月8日まで 
#  【 参照 】http://ime.nu/www1.axfc.net/uploader/Sc/so/201786 パスは0968 
#  検索文字 : IP 解析時のデリミタ : ","
#  
#  
#  -----出力結果-----
#  
#  検索文字 : IP    //←キーボードから入力
#  VoIP
#  IPv4
#  IPアドレス
#  VoIPゲートウエイ
#  TCP/IP
#  
#  ------------------
#  

ファイル中の文を解析して単語を取り出し、プログラム中で定義されている検索文字列を含む単語を表示する :-
        形態素解析(ファイル,'WordDate.dat',_単語ならび),
        append(_,[_単語|R],_単語ならび),
        検索文字列を得る(_検索文字列),
        検索文字列を含む単語を表示する(_検索文字列,_単語),
        R = [].

検索文字列を含む単語を表示する(_検索文字列,_単語) :-
        sub_atom(_単語,_,_,_,_検索文字列),
        write_formatted('%t\n',[_単語]),!.
検索文字列を含む単語を表示する(_,_).

検索文字列を得る(_検索文字列) :-
        write('検索文字列 : '),
        get_line(_検索文字列).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

形態素解析サーバー(mecab).

形態素解析(ファイル,F,L) :-
        形態素解析サーバー(_形態素解析サーバー),
        slush_op(F,F_1),
        concat([cat ,F_1, | ,_形態素解析サーバー],S),
        sh(S,L1),
        形態素解析(L1,L2),
        形態素解析_3(L2,L).
形態素解析(文,S,L) :-
        tmpnam(F_1),
        tell(F_1),
        wr(%t,[S]),
        told,
        形態素解析(ファイル,F_1,L).

形態素解析([],[]) :- !.
形態素解析([['EOS'|_]|_],[]) :- !.
形態素解析([[A|_],[@,B|_]|R],[R1_1|R3]) :-
        形態素解析_2(R,R1,R2),
        形態素解析_2_重複削除([A,B|R1],[],R1_1),
        形態素解析(R2,R3),!.
形態素解析([[A|_]|R],[B|R2]) :-
        形態素解析サーバー(mecab),
        make_list(A,[\t],AL),
        AL = [B|_],
        形態素解析(R,R2),!.
形態素解析([[A|_]|R],[A|R2]) :-
        形態素解析サーバー(juman),
        形態素解析(R,R2),!.

形態素解析_2([],[],[]) :- !.
形態素解析_2([[A|R1]|R],[],[[A|R1]|R]) :-
        \+(A = (@)),!.
形態素解析_2([[@,A|_]|R],[A|R2],R3) :-
        形態素解析_2(R,R2,R3),!.

形態素解析_2_重複削除([],L1,L) :-
        reverse(L1,L),!.
形態素解析_2_重複削除([A|R],Y,X) :-
        member(A,Y),
        形態素解析_2_重複削除(R,Y,X),!.
形態素解析_2_重複削除([A|R],Y,X) :-
        \+(member(A,Y)),
        形態素解析_2_重複削除(R,[A|Y],X).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

形態素品詞解析([],[]) :- !.
形態素品詞解析([['EOS'|_]|R1],R2) :-
        形態素品詞解析(R1,R2).
/*
形態素品詞解析([[A|_],[@,B|_]|R],[R1_1|R3]) :-
        形態素解析_2(R,R1,R2),
        形態素解析_2_重複削除([A,B|R1],[],R1_1),
        形態素品詞解析(R2,R3),!.
*/
形態素品詞解析([[_文|_]|R],[(_語彙,_品詞)|R2]) :-
        形態素解析サーバー(mecab),
        make_list(_文,[\t],AL),
        AL = [_語彙,_品詞|_],
        形態素品詞解析(R,R2),!.
形態素品詞解析([_|R],[(_語彙,_品詞)|R2]) :-
        形態素解析サーバー(mecab),
        形態素品詞解析(R,R2),!.
形態素品詞解析([[A|_]|R],[A|R2]) :-
        形態素解析サーバー(juman),
        形態素品詞解析(R,R2),!.