0

多くの文を含む (実行中の) テキストがあります。ピリオド、疑問符、感嘆符で終わる文を抽出できる正規表現があります。文の終わりには、次の文の開始が続く必要があります (空白/タブ/改行と大文字または数字)。データに格納されている文字列を読み取り、正規表現を呼び出します。

basic_pat = re.compile(r"[(']?\w.+[)']?[?.!](?=\s+[A-Z\d])")
result = basic_pat.findall(data)

略語のケースを考慮しなければ、この正規表現は機能しているようです。テキストには、ピリオドで終わらない章テキストもあるかもしれません。例えば:

これが最初の章です これが
最初の文です。これが 2 番目のセンテンスです。これが4番目に送信されたものです...

私の質問は、章のテキストのみを読み取る正規表現と、文を読み取る正規表現を1つ持つことが可能かどうかです。章は、ピリオドのない行の緩いテキストです。通常の文章は数行にわたる場合があります。つまり、文にはピリオドなしの行にテキストが含まれている場合もあります。2 つの状況 (章と文) を正規表現で区別することは可能ですか?

4

1 に答える 1

3

問題に直面したときに、「分かった、正規表現を使用する」と考える人もいます。現在、彼らには 2 つの問題があります。-- ジェイミー・ザウィンスキー

実際には、2 つの正規表現を使用する必要があります (これで4 つの問題が発生します)。

まず、テキストを調べて、章見出しと非章見出しを交互に分割します。次に、文、段落、およびあなたが持っているものについて、各非章見出しを調べます.

次のことをどのように分割しますか。

ライプツィヒ訪問、第 1 章: トーマスキルヒホフ通り

バッハ博物館は、聖トーマス教会の向かいのトーマスキルヒホフにあります。ヴァン・ベートーヴェンの博物館はライプツィヒのどこにもありません。

自然言語の処理は非常に困難です。神はバベルの塔を破壊する際、徹底した仕事をされました。

于 2011-11-06T20:19:08.293 に答える