Prolog言語を使用して、ある数のサブシーケンスの出現数を調べる必要があります。
大きなテキストファイル内の単語の出現回数を数えようとしましたが、うまくいきませんでした。私はそれからのコードを持っていますが。
word_freq(W, Freq) :-
word_count(W, 0, Total, 0, Match),
Total > 0 -> Freq is Match / Total.
word_count(W, TotSoFar, Tot, MatchSoFar, Match) :-
( read_word(SoFar,W),
N \= end_of_file
-> T1 is TotSoFar + 1,
( N == W
-> M1 is MatchSoFar+1
; M1 is MatchSoFar
),
word_count(W, T1, Tot, M1, Match)
; TotSoFar = Tot,
MatchSoFar = Match
).
read_word(SoFar, W) :-
get_code(C),
( C == -1
-> ( SoFar == [] -> W = end_of_file ; reverse(SoFar, W) )
; code_type(C, alnum)
-> read_word([C|SoFar], W)
; reverse(SoFar, W)
).
発生/頻度のカウントは、両方で同じか、または同様に機能するはずです。どこから始めればいいのかわからないので、助けていただければ幸いです。