段落中的分句

时间:2012-10-18 13:04:02

标签: perl

我希望通过perl在para中使用分句。

现在我使用Lingua :: EN :: Sentence模块,我可以在没有内部

的情况下拆分句子
> <em>

标签,但我不能拆分这个段落因为一些标签

脚本:

use strict; use Lingua::EN::Sentence qw( get_sentences add_acronyms );

$line = "En meteen is er iets. Die voorstelling dat hapert";

my $sentences = get_sentences($line); foreach my $sentence
(@$sentences) {
     print $sentence."\n"; }

输出:

En meteen is er iets.
Die voorstelling dat hapert




  > <p>luk heeft aan zichzelf genoeg, het heeft geen getuigen nodig. Then
    > <em class="xix"><span class="emph-xix-brl">anna Karenina</span>.
    > </em>Ik zou daar hooguit afkunnen. Hoe meer <em>getuigen hoe<em>
    > beter. Het alleen is.</p>

这段怎么分裂?

1 个答案:

答案 0 :(得分:5)

尝试使用HTML :: Strip在拆分之前删除标记。

代码

#! /usr/bin/env perl
use strict;
use warnings;
use HTML::Strip;
use Data::Dumper;

use Lingua::EN::Sentence qw( get_sentences add_acronyms );

my $line = "En meteen is er iets. Die voorstelling dat hapert";
my $paragraph = '<p>luk heeft aan zichzelf genoeg, het heeft geen getuigen nodig. Then <em class="xix"><span class="emph-xix-brl">anna Karenina</span>.  </em>Ik zou daar hooguit afkunnen. Hoe meer <em>getuigen hoe<em>    beter. Het alleen is.</p>' ;

my $html_strip = HTML::Strip->new();
my $clean_paragraph = $html_strip->parse($paragraph);

my $sentences = get_sentences($clean_paragraph);

print Dumper($sentences);

输出

$VAR1 = [
      'luk heeft aan zichzelf genoeg, het heeft geen getuigen nodig.',
      'Then anna Karenina .  Ik zou daar hooguit afkunnen.',
      'Hoe meer getuigen hoe    beter.',
      'Het alleen is.'
    ];