Ddavid
要寫我目標使用的假文產生器還真沒想像中簡單,光試寫 EBNF 就花了一點時間。
不過 ChatGPT 果然不愧是語言模型,叫他幫忙審這個很厲害,過程中輕鬆提出很多關鍵修正。
掰噗~
果然是這樣阿....(thinking)
Ddavid
article = { paragraph }-;
paragraph = { sentence, dialog_sentence }-, { "\n" };
dialog_sentence = [ pre_dialog, ":" ], dialog, [ post_dialog ];
dialog = "「", sentence, "」";
pre_dialog = no_end_sentence;
post_dialog = sentence;
dialog = "「", { sentence }, "」";
Ddavid
sentence = no_end_sentence, end_punctuation;
bracket_block = "「", { no_end_sentence }, "」"
| "《", { block }, "》"
| "(", { block }, ")";
no_end_sentence = { ( block, middle_punctuation ) }-, block;
block = { character };
middle_punctuation = "," | ";" | "、";
end_punctuation = "!" | "?" | "。";
character = 任意非標點符號的中文字
Ddavid
本來以為沒這麼麻煩,結果細想才發現需要處理很多小細節,主要還是標點位置造成。這還是已經簡化過的,把破折號跟刪節號之類都放棄掉了。
Ddavid
接下來還有頭很大的頻率計算以及根據頻率產生假文了。
別人的假文產生器沒有那麼複雜,因為目標只是產生一段有樣子但看不懂的就好。我需求的假文產生有必須更接近真文結構的要求,不能用太過簡化的做法。
Ddavid
雖然可以讓 ChatGPT/Github Copilot 輔助,不過我頻率計算的需求有點複雜,光是要描述就很麻煩XD
載入新的回覆