???
正確にはわからないので、タイトルのことを意味します。状況を説明しましょう。
私はコンピュータ サイエンスの学生ではありません。また、コンパイラ コースを受講したこともありません。今まで私は、コンパイラーを書いている言語が何であれ、コンパイラーのパーサー・コンポーネントを書かなければならなかったので、コンパイラー・ライターやコンパイラー・コースを受講した学生は優れていると思っていました。簡単な仕事じゃないですよね?
私は情報検索の問題を扱っています。希望するプログラミング言語は Python です。
Parser Nature:
http://ir.iit.edu/~dagr/frDocs/fr940104.0.txtはサンプル コーパスです。このファイルには、XML スタイルのマークアップを含む約 50 のドキュメントが含まれています。(上記のリンクで見ることができます)。<DOCNO> FR940104-2-00001 </DOCNO>
&のような他のいくつかの値を書き留める必要があり、削除する必要があるいくつかのさまざまなタグと、無視する必要がある多くのコメントといくつかの文字エンティティを含むドキュメントの部分<PARENT> FR940104-2-00001 </PARENT>
にインデックスを付けるだけで済みます。ブラウザーや適切な XML ドキュメントによってレンダリングされることを意図していないことがわかっているのに、なぜコーパスにこのようなものが含まれているのかわかりません。<TEXT> </TEXT>
<!-- -->
&hyph; &space; &
Python XML パーサーを使用して、目的のテキストを抽出することを考えました。しかし、少し検索した後、ここで使用している同じコーパスのJavaCC パーサー ソース コード (Parser.jj)を見つけました。JavaCCに続いて Compiler-compilerをざっと調べてみると、結局のところ、コンパイラの作成者は思ったほど優れていないことがわかりました。Compiler-compiler を使用して、目的の言語でパーサー コードを生成します。ウィキは、コンパイラコンパイラへの入力は入力が文法(通常はBNF)であると言います。これは私が迷っているところです。
- Parser.jjは文法 (JavaCC と呼ばれるコンパイラー コンパイラーへの入力) ですか? それは間違いなくBNFではありません。この文法は何と呼ばれますか? なぜこの文法には Java 言語があるのですか? 普遍的な文法言語はありませんか?
- コーパスを解析するための python パーサーが必要です。Parser.jj を翻訳して Python と同等のものを取得する方法はありますか? はいの場合、それは何ですか? いいえの場合、他にどのような選択肢がありますか?
- ひょっとして、このコーパスが何かわかる人はいますか?その元のソースはどこですか?私はそれについてのいくつかの説明を見たいと思います。という名前でインターネット上で配布されています
frDocs.tar.gz