NLP-自然言語処理
世界のほとんどのデータは構造化されていません。ロシア語またはその他の言語のテキストです。そのようなテキストから抽出された事実は、ビジネスにとって特に興味深い可能性があるため、そのようなタスクが頻繁に発生します。人工知能の別の領域がこの問題を扱います:自然言語処理、同じNLP(自然言語処理)。
:
.
, , , .
-
, ,
, – , , , , . , , , , , :
№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
ファイル「input.txt」には、記事の冒頭に配置されたソーステキストが配置されています。作業後、パーサーは結果を「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
}
自然言語から事実を抽出することは、今日までITの世界ではかなり重要な作業です。これで、別の利用可能なツールが手に入りました。ご覧のとおり、最初の文法を作成するのは非常に簡単ですが、少し時間をかけて学習します。富田については、詳細で包括的なドキュメントが提供されています。ただし、強調表示された事実の品質は、開発者自身と専門家分野での彼の知識に大きく依存します。