������ � ������� ������ �� Perl
������ �������� 2004
���������� ��������� �������� ����� �� ���������� ������� � ��������� ������� �� Perl. ���� ��������� ��� ���������� ���������� �������������, ������� ��� ���������� ����������� � ��������� ������������ ��� ������ � �������������� �������.
������ ���������� ��������� �� ���������. ������� ������� ������ ����� ������ ������������ ��� �������������� ��������������� ������������. � ������������ ���� ������ ������ ������ ��������� ������-���� ������ ������������� ����������: ���� �� ������ ����� � ������ �����������, ���������� ������������ ������, ���������, �������� ��� ������� �� ��������� � ����-���� - ������� ��� ��� ������ ���������� ����������� � ������ � ������� ���������� ��������� �� ���-�� ������.
������ ������� ����������, ��� ��� ����� �������:
# C������� ������ �����������
# � ������� ���-�� �����, ����e� ��� ���������� �����.
while ($sentence =~ /\G($chto_to_rastet/g) ) {
push (@vse_chto_rastet, $1);
}
���� ������ ������ "$chto_to_rastet" ����� �������� ����� �� ������ ���� � �����������, ����� � �������� ���������� �����, ����� � ��� ������ ��������� �����: "������", "�������", "����� �����".
���������� ������
���������� ��������� �������� � ��������� ������������� �����, �� ������ ��������� �� ��� ����� ������������� ����������� � ��������� �����������. ���� �� �������� - ��� ������ ����������� � ������� ���������� ������ (Link Grammar). ����� ����������� �������� ������� ������� ����� � �����������, ������ ���������� ������ ������ ����, ��� ��� ����� ������� �������� (������� ��� �������).
������ �����-����� ������������ �� ������ ��� ����������� ����� ���� (���������������, ��������������, ������� � ��� �����) � ��������� �������� ("���� ���� ����" - "����" ����� ������, � �� ���������������), �� � ��������� ����� �������� ������� ������� ����� � �����������. ��������, ���� ����� ������� �� ���� �������������� � ���� ��������������� � ��� ����� ����� ����� � ������ ���-�� ���������������� ��������� ������ ��������������. ���������� ������ ������ ��� ��������.
���������� ������ �������� �� ����� �� ��������������� ������� �����, ������� ���������� ����������� (��� ������ �������������). ����������� ��������, ��� ���� �� �� ��������� ��������� ������ ��� ����� ����� ������� � ����������� (��� ������������), �� ������������� ��� �������� ������������� ���������� �����������, � ���� ���� ������������, �� ����������� ������ ����� ������������� ������������ � ������ ���-�� �� ���. �������� ����������� ����������� "� ��� ���� �������" ����� ����� (�-����, ����-���, �������-���), ������� ������������.
� ������������ ���������� ������ ������ �������� ���� �� �������� �������� �����������, � ������� ������� ��� ���� �� ������������. ������ �������� ������� �����������:
+----------Wd----------+
| +----Sf3----+----MVv----+
| | | |
LEFT-WALL ����.nlfsi ����.vnpdpfs ����.ndfsv
������� ����� ���� ���������� ����������. ��������, ������������ �� .n � .v �������� ��������������� (noun) � ������ (verb). ���������� ������� � �������� ����� ���������� � ����, �����, ������, ������� � ������ ��������������� ���������, � ����������� �� ����� ����. ����� �� ����� ����� ������� ���������� ��� �����. ��������, ��������� S ���������� ����� ����� ������� ��������������� � ��������. ��������� MV - ����� ��������� � ���������� �� ��� ����������������. ���������� ������� ����������� (��������� �����) ���������� ��������� �������������� ���������� � ���� ����������� ������, ���� ����� ��� �����, ����� � ���.
���� ������������� ���������� ������ �������� ������, ��� ��� �� ���� ��������� �� �������� ����� ��������� � �� ����� ����������� � ����� ��������� ����������� ��������.
���������� ������ ������� �������� ������, ������ �������� ������� ���������� ��������� ������� ���������. ��� ��� ������� ������� ��� ���� ��� �� ����������� ��������� �����������:
������ ���������� �������, ��� ��������� ���������� �� ������ ��� ������� �����. ��������, ����� "����", "����", "����" ����� �������� �������� ���������� �� ������:
"����.nlfsi": {Afi-} & Sf3+;
"����.vnpdpfs": Sf3- & Wd-;
"����.ndnsg": {Ang-} & Mg-;
"����.ndfsv": {Afv-} & MVv-;
��������������� "����.n", "����.n", "����.n" ����� (� �������� { } ����������, ��� ����� � �� �����) ����� ����� � �������������� (���������� A-), � ������ "����.v" ����� ����� �- ����� �� �����, ���� ����� ������������ ��������� S-, ���������� ����� � ���������������. ����� ������� ��������������� "����.n" � ����������� ������ �� "����" �� ���������� �� � ����� �� ������ � ������������� ���������� �������.
��� ���������� ������ ��� ���� �������� � ����������� �������� �������. ���������� �������� �� ����������� ���������� "����� ���������� ������", ������� ������������ ����� ��������� �������. ������� ����� �������, ��� ��� ���������� ��������� � ���������� ���, � ��� ������������ ���������� ����������� A+, A-. ���� �� ���������� ������� � ����� ��������� �� ������� �������� ��������� ������ ��������� �� �������� � ������������ ����� ���� (A1 ��� A2 ��� .. ��� An), ��� Ai � ���� ������� ��� ������ ����������� (K1 � K2 � .. Kn). ������ ������ � ������� ������ ������� ����� (����� �������������� �� ������ � ������) �� �������� ��������� ����� �������� ��� �����������. ��� ������ �� ������� ��������������� �������� ����� � �� ����� �������� ������������ �������������� �����������. ����� ��� ����� �������� ��� �������� ������ ����������� ��������, ������� �� �������������� ����� (���� ���� ������ O(n^3) �� ����� ���� � �����������) ������� ������������� ���������� ������. ����� ��������, ��� ������ ������ ���������� ������ �������� � ������ ������������ ��������� ��������������. �������� ������� �������� ������� �� ����� ��������� ������. ���� ��� ����� �������� ����� �� ����� �� ������������ ������� �� � ����������� ������, �� �������� ��������� �� ����������� P4-2��� ��������� �� ����� 100 ����������� � �������. ������ ��-�� ������� ������������� ������� ��������, ���������� ������������ ������� �� ������������� ����� ���� ��� ������� ������� ������ �����������, ��� ������� ����������� �� �������� - � ������� ����� 1 ����������� � �������. �� ����� ��� ���������� ��� ��������� ������������ �����.
������ Lingua::RU::LinkParser
�������� ������ ���������� ������ ������������ ����� ��������-��������������� ���������, ������� ����� ������������ �� �������� �� Perl. ����� ����������� ������ ����� �������� � ��������� ��������������� ������������, �������, ������, ������ � �����������. � ������� ���������� ��������� ���������:
use Lingua::RU::LinkParser my $parser = new Lingua::RU::LinkParser; # ������� ������ my $text = "���� ���� ����" my $sentence = $parser->create_sentence($text); # ��������� ����������� my $linkage = $sentence->linkage(1); # ������������ ������ ������ print $parser->get_diagram($linkage); # ������� ��������� �� �������� ��������� �������:
+---------Wd--------+
| +---Sf3--+--AIfi--+
| | | |
LEFT-WALL ����.ndfsi ����.vp ����.afss
������ "����" ������� ���������� ��� ���������������, � ������ - ��� ������� ��������������.
��������� �������� ��� ������ ���������� ������, �� ��� ������������ ����� ��� ����������� �������� � ����� �������. ��������� ������ ���� ������� ���������, �� �������� �� ������� $linkage (������) ������ �������� ���� $word:
my @words = $linkage->words;
foreach my $word (@words) {
print "\"", $word->text, "\"\n";
foreach my $link ($word->links) {
print " ��� ����� `", $link->linklabel,
"' �� ������ `", $link->linkword, "'\n";
}
}
�������� �� ������ ���������:
"����.ndfsi" ��� ����� `Sf3' �� ������ `2: ����.vp' "����.vp" ��� ����� `Sf3' �� ������ `1: ����.ndfsi' ��� ����� `Wd' �� ������ `0: LEFT-WALL' ��� ����� `AIfi' �� ������ `3: ����.afss' "����.afss" ��� ����� `AIfi' �� ������ `2: ����.vp'