などの単語の種類を取得するためのPerlプログラム、私はこのようになり、入力ファイル(INPUT.TXT)からの出力として単語の種類を取得しようとしています出力
入力ファイル
John N N
loved V
Mary N N
. S
He N
was V
eating V
in P P
a A A
restaurant N
. S
The A A
cats N N
killed V
the A A
rats N N
. S
I N
am V
playing V
. S
入力ファイルには3つの列があります。最初の列は単語で、次の2つの列は単語の種類です。すべての列はタブで区切られ、その間には空白行があります。 プログラムの目的は、 "ing"、 "ed"、 "s"などの単語の終わりと一致させ、4番目の列に単語の種類を印刷することです。予想される出力は
の予想される出力
John N N
loved V V
Mary N N
. S
He N
was V
eating V V
in P P
a A A
restaurant N
. S
The A A
cats N N N
killed V V
the A A
rats N N N
. S
I N
am V
playing V V
. S
私は、入力ファイル自体を取得していますように私は何か間違ったことをやっていると信じてしかし、私は使用していたコードは、このです
!/usr/bin/perl
use warnings;
use strict;
open my $fh, '<' , 'input.txt' or die $!;
while (<$fh>) {
chomp ;
print $_;
if (/ing\s*$/ or /ed\s*$/) {
print ' V';
}
if (/s\s*$/) {
print ' N';
}
print "\n";
}
close($fh);
になります出力として。いくつかの指示で私を助けてください。前もって感謝します。
'/^\ w * ing \ s/'や'/^ \'のようなものは、行末ではなく最初の単語の最後にあります。 w * ed \ s/'は仕事をするだろうか? – Dada
@Dadaご返信ありがとうございます。しかし、それは役に立たなかった。私はハッシュの単語の最初の列を格納し、特に単語の終わりとそれらを比較しようとすると思います。それがうまくいくかどうかは分かりません。 – Nandini143
@Dadaあなたの提案はうまくいきます。あなたはOPのスクリプトの '/...$/'問題を正しく見つけました。 – PerlDuck