NLP - pemrosesan bahasa alami
Sebagian besar data di dunia tidak terstruktur - hanya teks dalam bahasa Rusia atau bahasa lain. Fakta-fakta yang diekstraksi dari teks-teks semacam itu dapat menjadi minat khusus untuk bisnis, sehingga tugas-tugas semacam itu sering kali muncul. Area terpisah dari kecerdasan buatan menangani masalah ini: pemrosesan bahasa alami, NLP ( Pemrosesan Bahasa Alami ) yang sama.
:
.
, , , .
-
, ,
, – , , , , . , , , , , :
№2 ,15 2020., 5400,00 |
.. 15299,00 , |
№575 , 145 17.09.2020 2020 , 18% — 5300 . |
, 23, 51 01.09.2020 — 7500 . |
№1-03 01.07.2020 211 2020 23000 ..(18%) |
-?
-?
– ,
–
–
–
-?
config.proto — . , . tomitaparser.exe;
dic.gzt – . . , , , . ;
mygram.cxx – . , . . ;
facttypes.proto – ;
kwtypes.proto – . , .
utf8 , ( ).
«dic.gzt», , .
encoding "utf8"; //
// ,
import "base.proto";
import "articles_base.proto";
//
TAuxDicArticle "payment" {
key = { "tomita:mygram.cxx" type=CUSTOM }
};
. , — , . . «->» . , – . . . (Noun, Verb, Adj), (Comma, Punct, Ampersand, PlusSign) . . .
() , (), , . () «< >» . - . , «cxx», – «mygram.cxx». . . — , , «», «», «».
#encoding "utf8" //
// "|" ""
Rent -> '' | '' | '';
// "" , 0
// <gnc-agr[1]> , ,
Purpose -> Rent Adj<gnc-agr[1]> Noun<gnc-agr[1]>;
. , , , . , , .
// StreetW , StreetAbbr -
StreetW -> '' | '' | '' | '';
StreetAbbr -> '' | '' | '' | '-' | '';
// StreetDescr, StreetW StreetAbbr
StreetDescr -> StreetW | StreetAbbr;
StreetNameNoun -> (Adj<gnc-agr[1]>) Word<gnc-agr[1], rt> (Word<gram="">);
StreetNameAdj -> Adj<h-reg1> Adj*;
«StreetNameNoun» , . , , «<rt>». , , . , , . . , , .. , «()». «StreetNameAdj» , . . «<h-reg1>». , «*». , .
Address -> StreetDescr StreetNameNoun<gram="", h-reg1>;
Address -> StreetDescr StreetNameNoun<gram="", h-reg1>;
Address -> StreetNameAdj<gnc-agr[1]> StreetW<gnc-agr[1]>;
Address -> StreetNameAdj StreetAbbr;
. , . , . . , . :
// «dic.gzt»
TAuxDicArticle "month" {
key = { "" | "" | "" | "" | "" | "" | "" | "" | "" | "" | "" | "" }
};
:
Month -> Noun<kwtype="month">;
Year -> AnyWord<wff=/[1-2]?[0-9]{1,3}?\.?/>;
Period -> Month Year;
«kwtype» , «month» , 0 2999 «» «.» . , . «Result» :
Result -> Purpose AnyWord* Address AnyWord* Period;
Result -> Purpose AnyWord* Address;
Result -> Purpose;
«AnyWord» «*» , 0 . : , . : , .
. – «facttypes.proto» «dic.gzt» (, - , ).
import "facttypes.proto"; // «dic.gzt»
«facttypes.proto» «Payment» (): , . :
//
import "base.proto";
import "facttypes_base.proto";
message Payment: NFactType.TFact {
required string Purpose = 1;
optional string Address = 2;
optional string Period = 3;
};
«Payment» «NFactType.TFact», «required» «optional» , . , , «interp» , . , .
// «Purpose» «Purpose» «Payment»
// «Address» «Address» «Payment»
// «Period» «Period» «Payment»
Result -> Purpose interp(Payment.Purpose) AnyWord* Address interp(Payment.Address) AnyWord* Period interp(Payment.Period);
Result -> Purpose interp(Payment.Purpose) AnyWord* Address interp(Payment.Address);
Result -> Purpose interp(Payment.Purpose);
, , , .
encoding "utf8"; //
TTextMinerConfig {
//
Dictionary = "dic.gzt";
//
Input = {File = "input.txt"}
//
Output = {File = "output.txt"
Format = text}
// ,
Articles = [
{ Name = "payment" }
]
// ,
Facts = [
{ Name = "Payment" }
]
//
PrettyOutput = "pretty.html"
}
:
> tomitaparser.exe config.proto
Di file " input.txt " kami telah menempatkan teks sumber di bagian paling awal artikel. Setelah bekerja, parser menulis hasilnya ke file " output.txt ":
№ 2 , 15 2020 . , 5400,00
Payment
{
Purpose =
Address =
Period = 2020
}
. . 15299,00 ,
Payment
{
Purpose =
}
№ 575 , 145 17.09.2020 2020 , 18% - 5300 .
Payment
{
Purpose =
Address =
Period = 2020
}
, 23 , 51 01.09.2020 - 7500 .
Payment
{
Purpose =
Address =
}
№ 1-03 01.07.2020 211 2020 23000 .. ( 18% )
Payment
{
Purpose =
Address =
Period = 2020
}
Mengekstrak fakta dari bahasa alami adalah tugas yang agak tidak sepele di dunia TI hingga hari ini. Sekarang kami memiliki alat lain yang tersedia di tangan kami. Seperti yang Anda lihat, membuat tata bahasa pertama Anda bisa sangat mudah, sambil meluangkan sedikit waktu untuk belajar. untuk Tomita, dokumentasi rinci dan komprehensif disediakan. Namun, kualitas fakta yang disorot sangat bergantung pada pengembang itu sendiri dan pengetahuannya di bidang ahli.