約6000文のテキストファイルがあり、それぞれが独自の行にあります。WindowsコマンドプロンプトでStanfordParserを使用して、文を解析したいと思います。ただし、一度に1つの文をパーサーに送信する必要があります(文が別のファイルの文と整列しているため)。
Perlラッパーを次のように記述します。入力ファイルから一時ファイルに1つの文を書き込み、一時ファイルをパーサーに送信し、1つの文を解析し、解析した出力を出力ファイルに書き込み、出力ファイルを自分に書き込みます。大きな出力ファイル、ParsedOutput.txt。
これはおそらく非常に基本的なことですが、私は行き詰まっています。どんな助けやガイダンスも本当にありがたいです。
ありがとうございました!:)
編集:これは私がこれまでに試したことです:
open (ENGDATA, "<1tot1660.txt");
open (ENGDATAOUT, ">temp.txt");
while (<ENGDATA>)
{
my $line = $_;
chomp $line;
while ($line)
{
my @OneLine = $line;
print ENGDATAOUT "$OneLine[0]\n";
shift(@OneLine);
}
}
私が考えていたのは、各行を配列の要素として持ち、0番目の要素を一時出力ファイルに書き込んでから、最初の要素を削除することです(誤って再度使用されないようにするため)。私は基本的にプログラム全体に固執していますが、今のところ、一時出力ファイルに(一度に)1行を書き込むときです。
編集!(もう一度..ありがとう、TLPとamon!:))これは私が最終的にしたことです:
open (ENGDATA, "<Testing10.txt");
open (ENGDATAOUT, ">TempOut.txt");
open (PARSEDOUT, ">ParsedOutput.txt");
while (<ENGDATA>)
{
my $line = $_;
chomp $line;
my $inputfilename = $line;
print ENGDATAOUT "$line\n";
my $parsecommand = qx(java -mx150m -cp "*;" edu.stanford.nlp.parser.lexparser.LexicalizedParser -outputFormat "penn,typedDependencies" edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz $inputfilename);
print PARSEDOUT "$parsecommand\n";
}
入力内のすべての単語でこのエラーが発生します。
解析ファイル:superior edu.stanford.nlp.process.DocumentPreprocessor:パスsuperiorを開くことができませんでした解析ファイル:superior[0文]。
これはどういうことですか?誰か知っていますか、助けてもらえますか?ありがとう!