注釈のリストを使用して用語にタグを付けようとしています。私が具体的に達成しようとしているのは、Perl正規表現が文から用語を識別する場合、その用語にタグを付ける必要があるということです。
例えば:
This drug has adverse effect on Lymphocytes, Lymphnodes, Lymph and pre-lymphocytes.
私のリストにはLymphという単語があり、次のスクリプトを試しています。
open IN, "clean_cells.txt" or die "import file absent";
@array=<IN>;
foreach $words(@array)
{
@cells=split/\t/,$words;
$value=$cells[0];
$replace=$cells[1];
foreach my $fp (glob("$Directory/*.txt"))
{
@id=split('/',$fp);
$id[1]=~s/.txt//ig;
$Pub=$id[1];
open FILE, "<",$fp or die "Can't open $fp: $!";
open OUT, ">C:\\Users\\Desktop\\TM\\Files\\$Pub" or die "Check output status";
while(<FILE>)
{
chomp $_;
$line=$_;
s/\b[\w\-]*$value[\w\-]*\b/<$replace>$&<\\$replace>/gi;
# $string[$i]=$line;
# while(($string[$i]=~m/\Q$value\E/i)|| ($string[$i]=~m/\Q$value(\w+)\E/i)||($string[$i]=~m/\Q(\w+)$value\E/i))
# # if ($string[$i] =~ m/\b\w*$value\w*\b/i)
# {
# $value=~s/$value/<$replace>$value<\$replace>/i;
# }
print OUT "$line\n";
}
last;
}
last;
}
最後の文が次のようになることを願っています。
This drug has adverse effect on tag Lymphocytes tag, tag Lymphnodes tag, tag Lymph tag and tag pre-lymphocytes tag.
タグ:上記のスクリプトで$replaceを表します。
プログラムは、リンパ球、前リンパ球という用語全体ではなく、ベースワードlymohにタグを付けます。