0
私はプロローグを使って自然言語ファイルを単語のリストに読みたいと思っています。ここでは、ファイルのサンプルです:Prolog:自然言語ファイルを単語のリストに読み込みますか?
The Architecture major occupies the office with the Ctrl+Alt+Del comic poster.
The CSE major belongs to the RPI Flying Club.
私は空白、句読点と大文字を処理する、すでにいくつかのコードを持って、私は、ファイルを開いて、そのコードに、このデータを供給するかどうかはわかりません。
%%% Examples:
%%% % read_line(L).
%%% The sky was blue, after the rain.
%%% L = [the,sky,was,blue,',',after,the,rain,'.']
%%% % read_line(L).
%%% Which way to the beach?
%%% L = [which,way,to,the, beach,'?']
%%%
read_line(Words) :- get0(C),
read_rest(C,Words).
/* A period or question mark ends the input. */
read_rest(46,['.']) :- !.
read_rest(63,['?']) :- !.
/* Spaces and newlines between words are ignored. */
read_rest(C,Words) :- (C=32 ; C=10) , !,
get0(C1),
read_rest(C1,Words).
/* Commas between words are absorbed. */
read_rest(44,[','|Words]) :- !,
get0(C1),
read_rest(C1,Words).
/* Otherwise get all of the next word. */
read_rest(C,[Word|Words]) :- lower_case(C,LC),
read_word(LC,Chars,Next),
name(Word,Chars),
read_rest(Next,Words).
/* Space, comma, newline, period or question mark separate words. */
read_word(C,[],C) :- (C=32 ; C=44 ; C=10 ;
C=46 ; C=63) , !.
/* Otherwise, get characters, convert alpha to lower case. */
read_word(C,[LC|Chars],Last) :- lower_case(C,LC),
get0(Next),
read_word(Next,Chars,Last).
/* Convert to lower case if necessary. */
lower_case(C,C) :- (C < 65 ; C > 90) , !.
lower_case(C,LC) :- LC is C + 32.
/* for reference ...
newline(10).
comma(44).
space(32).
period(46).
question_mark(63).
*/
進捗状況が発生しています。 get_byte(Stream、C)の使用 私はファイルの最初の文字を取得できました。 – Wenzel745
ドキュメントのPrologファイルI/O述語を検索しましたか? – lurker
より良い方法は 'library(pio)'を使うことです – false