7

スクリプト (つまり、構造化されたコンピューター言語) 用のパーサーとレクサーは多数あります。しかし、(ほとんど) 構造化されていないテキスト文書をより大きなセクション (章、段落など) に分割できるものを探しています。

人がそれらを特定するのは比較的簡単です。目次、謝辞、または本文の開始場所であり、ルールベースのシステムを構築して、これらの一部 (段落など) を特定することができます。

私はそれが完璧であるとは思っていませんが、そのような幅広い「ブロックベース」のレクサー/パーサーを知っている人はいますか? または、役立つ可能性のある文学の方向性を教えていただけますか?

4

4 に答える 4

1

マークダウン(偶然にも SO が使用する)、reStructuredテキスト、(おそらく) PODなどの多くの軽量マークアップ言語は、あなたが話しているものに似ています。それらは最小限の構文を持ち、入力を構文解析可能な断片に分解します。それらの実装について読むことで、いくつかの情報を得ることができるかもしれません。

于 2010-01-18T17:05:41.767 に答える
0

lex / yaccの種類のプログラムのほとんどは、明確に定義された文法で動作します。BNFのような形式(ほとんどのパーサーが同様の構文を受け入れる)の観点から文法を定義できる場合は、それらのいずれかを使用できます。それは明らかなことを述べているかもしれません。ただし、文法の一部となるテキストの「ブロック」(トークン)については、まだ少しあいまいになる可能性があります。結局のところ、トークンのルールを定義します。

私は過去にParse-RecDescentPerlモジュールを使用しましたが、同様のプロジェクトでさまざまなレベルの成功を収めました。

申し訳ありませんが、それは良い答えではないかもしれませんが、同様のプロジェクトでの私の経験をもっと共有しています。

于 2010-01-18T17:10:48.147 に答える
0
  1. どのように分割したいかを示す注釈標準を定義します。
  2. Amazon Mechanical Turk にアクセスして、アノテーション標準を使用して 10,000 個のドキュメントにラベルを付けるよう人々に依頼してください。
  3. このトレーニング データで CRF (HMM に似ていますが、より優れています) をトレーニングします。

実際にこのルートに行きたい場合は、詳細を詳しく説明できます。しかし、これは大変な作業になります。

于 2010-01-22T05:23:08.420 に答える
0

試してください: pygmentsgeshi、またはprettify

彼らはあなたが投げかけたものなら何でも処理することができ、あなたの文書だけでなくあなたの文法の誤りにも非常に寛容です.

参考文献:
gitorius は prettify を使用、
github は pygments を使用、
rosettacode は geshi を使用、

于 2010-05-17T06:17:27.177 に答える