در مطالب قبل در مورد وب سرویس متن کاوی و مستندات سرویس متن کاوی توضیح دادیم در این مطلب در مورد ادامه مستندات وب سرویس متن کاوی توضیح خواهیم داد.
بهبود متون
پیشنهاد کلمات صحیح با توجه به زمینه
این تابع اشتباهات تایپی/املایی متن ورودی با توجه به محتوای جمله اصلاح میکند(ادامه مستندات وب سرویس متن کاوی).
آدرس و نوع تابع وبسرویس
POST https://api.text-mining.ir/api/TextRefinement/SpellCorrectorInContext
مدل دریافتی به عنوان پارامتر
عنوان توضیح پارامتر
CandidateCount تعداد کلمات کاندید برای جایگزین کردن با کلمه ناآشنای درون متن
Normalize آیا نرمالسازی متن نیز انجام شود
Text متن ورودی
string baseAddress = “https://api.text-mining.ir/api/”;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, GetJWTToken());
string inputText = @”ستر حیوانی است که در صحرا با مقدار کم آب زندگی میکند”;
string json = JsonConvert.SerializeObject(new
{
Text = inputText,
Normalize = true,
CandidateCount = 3
});
var response = client.PostAsync(baseAddress + “TextRefinement/SpellCorrectorInContext”, new StringContent(json, Encoding.UTF8, “application/json”)).Result;
string resp = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(resp);
خروجی مثال کد بالا: {شتر,سطر,سفر} {حیوانی,حیوان,یونانی} {است,دست,هست} که در {صحرا,صفرا,صدرا} با {مقدار,مدار,مقدر} کم آب {زندگی,بندگی,زدگی} {میکند,میکند,مکند}
اصلاح اشتباهات تایپی
این تابع وب سرویس، اشتباهات تایپی را بر اساس لیست کلمات خود اصلاح میکند و کلمه درست را برمیگرداند. این تابع مانند همه توابع دیگر نیاز به توکن JWT برای احراز هویت دارد
آدرس و نوع تابع وبسرویس
POST https://api.text-mining.ir/api/TextRefinement/SpellCorrectors
مدل دریافتی به عنوان پارامتر
عنوان توضیح پارامتر
inputText متن ورودی که حاوی کلمات اشتباه است و بر اساس لیست کلمات صحیح، در خروجی بازگردانده میشود
string baseAddress = “https://api.text-mining.ir/api/”;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, GetJWTToken());
string inputText = @”فهوه با مبات میجسبد”;
string json = JsonConvert.SerializeObject(new
{
Text = inputText,
Normalize = true,
CandidateCount = 3
});
var response = client.PostAsync(baseAddress + “TextRefinement/SpellCorrector”, new StringContent(json, Encoding.UTF8, “application/json”)).Result;
string resp = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(resp);
خروجی مثال کد بالا: قهوه با {نبات,ملات,مباد} {میچسبد,میجنبد}
تبدیل محاوره به رسمی
کلمات محاورهای درون متن به شکل (معادل) رسمی آنها تبدیل میشود
آدرس و نوع تابع وبسرویس
POST https://api.text-mining.ir/api/TextRefinement/FormalConverter
مدل دریافتی به عنوان پارامتر
عنوان مقدار پیشفرض توضیح پارامتر
inputText متن ورودی
string baseAddress = “https://api.text-mining.ir/api/”;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, GetJWTToken());
string inputText = @”اگه اون گزینه رو کلیک کنین، یه پنجره باز میشه که میتونین رمز عبورتون رو اونجا تغییر بدین
داشتم می رفتم برم، دیدم گرفت نشست، گفتم بذار بپرسم ببینم میاد نمیاد دیدم میگه نمیخوام بیام بذار برم بگیرم بخوابم نمیتونم بشینم.
کتابای خودتونه
نمیدونم چی بگم که دیگه اونجا نره
ساعت چن میتونین بیایین؟”;
string json = JsonConvert.SerializeObject(inputText);
var response = client.PostAsync(baseAddress + “TextRefinement/FormalConverter”, new StringContent(json, Encoding.UTF8, “application/json”)).Result;
string resp = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(resp);
موجودیتهای نامدار متون
شناسایی موجودیتهای نامدار متن
لیست عبارات بهمراه برچسب نوع موجودیت. این برچسب یکی از موارد زیر میباشد:
O – عدم وجود موجودیت
B-PER – شروع موجودیت شخص یا نام فرد
I-PER – ادامه موجودیت شخص یا نام فرد
B-LOC – شروع موجودیت مکان یا محل خاص
I-LOC – ادامه موجودیت مکان یا محل خاص
B-ORG – شروع موجودیت نام سازمان یا تشکل
I-ORG – ادامه موجودیت نام سازمان یا تشکل
B-DAT – شروع موجودیت تاریخ یا زمان
I-DAT – ادامه موجودیت تاریخ یا زمان
B-EVE – شروع موجودیت رویداد یا حادثه
I-EVE – ادامه موجودیت رویداد یا حادثه
آدرس و نوع تابع وبسرویس
POST https://api.text-mining.ir/api/NamedEntityRecognition/Detect
مدل دریافتی به عنوان پارامتر
عنوان مقدار پیشفرض توضیح پارامتر
inputText متن ورودی
string baseAddress = “https://api.text-mining.ir/api/”;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, GetJWTToken());
string inputText = “احمد عباسی به تحصیلات خود در دانشگاه آزاد اسلامی در مشهد ادامه داد”;
var response = client.PostAsync(baseAddress + “NamedEntityRecognition/Detect”,
new StringContent(JsonConvert.SerializeObject(inputText), Encoding.UTF8, “application/json”)).Result;
string resp = response.Content.ReadAsStringAsync().Result;
// parse and generate result:
JArray tokens = JArray.Parse(resp);
var result = new StringBuilder();
foreach (JObject token in tokens.Children<JObject>())
result.AppendLine($”{{{token[“word”]},{token[“tags”][“NER”][“item1″]}}}”);
Console.WriteLine(result.ToString());
خروجی مثال کد بالا: {احمد,B-PER} {عباسی,I-PER} {به,O} {تحصیلات,O} {خود,O} {در,O} {دانشگاه,B-ORG} {آزاد,I-ORG} {اسلامی,I-ORG} {در,O} {مشهد,I-LOC} {ادامه,O} {داد,O}
نقش کلمات متون
تعیین برچسب نقش ادات سخن
این تابع عملیات برچسب زنی نقش (اسم، ضمیر، صفت، قید، فعل، …) کلمات در جمله را انجام می دهد.
آدرس و نوع تابع وبسرویس
POST https://api.text-mining.ir/api/PosTagger/GetPos
مدل دریافتی به عنوان پارامتر
عنوان مقدار پیشفرض توضیح پارامتر
text متن ورودی
string baseAddress = “https://api.text-mining.ir/api/”;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, GetJWTToken());
string inputText = “احمد و علی به مدرسه پایین خیابان می رفتند.”;
var response = client.PostAsync(baseAddress + “PosTagger/GetPos”,
new StringContent(JsonConvert.SerializeObject(inputText), Encoding.UTF8, “application/json”)).Result;
string resp = response.Content.ReadAsStringAsync().Result;
// parse and generate result:
JArray tokens = JArray.Parse(resp);
var result = new StringBuilder();
foreach (JObject token in tokens.Children<JObject>())
result.AppendLine($”{{{token[“word”]},{token[“tags”][“POS”][“item1″]}}}”);
Console.WriteLine(result.ToString());
خروجی مثال کد بالا: {احمد,N} {و,CON} {علی,N} {به,P} {مدرسه,N} {پایین,ADJ}
{خیابان,N} {میرفتند,V} {.,DELM}
ریشهیابی متون
ریشهیابی عبارات
از این تابع برای ریشهیابی عبارات استفاده میشود. به عنوان مثال، خروجی متن کد نمونه به شکل زیر است
[ { “wordComment”: “”, “simplePos”: “”, “rootWords”: [“دریانورد”, “دریا”], “verbInformation”: null, “sentenceNumber”: 0, “wordNumberInSentence”: 0, “startCharIndex”: 0, “word”: “دریانوردانی”, “tags”: null, “firstRoot”: “دریانورد”, “wordCount”: 1, “length”: 11, “isVerb”: false, “isPunc”: false }, { “wordComment”: “”, “simplePos”: “”, “rootWords”: [“فرشته”], “verbInformation”: null, “sentenceNumber”: 0, “wordNumberInSentence”: 0, “startCharIndex”: 0, “word”: “فرشتگان”, “tags”: null, “firstRoot”: “فرشته”, “wordCount”: 1, “length”: 7, “isVerb”: false, “isPunc”: false } ]
آدرس و نوع تابع وبسرویس
POST https://api.text-mining.ir/api/Stemmer/LemmatizePhrase2Phrase
مدل دریافتی به عنوان پارامتر
عنوان مقدار پیشفرض توضیح پارامتر
CheckSlang آیا در حین ریشه یابی کلمات محاورهای تحلیل و به شکل رسمی تبدیل شوند
ComplexSentence آیا بخشهای جملات مرکب غیرتودرتو جداسازی شوند
Phrases ورودی به شکل لیست عبارات
Text ورودی به شکل متن
string baseAddress = “https://api.text-mining.ir/api/”;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, GetJWTToken());
string json = JsonConvert.SerializeObject(new
{
Phrases = new[]
{
new { Word = “دریانوردانی” },
new { Word = “فرشتگان” }
},
CheckSlang = false
});
var response = client.PostAsync(baseAddress + “Stemmer/LemmatizePhrase2Phrase”, new StringContent(json, Encoding.UTF8, “application/json”)).Result;
string resp = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(resp);
ریشه یابی متن
برای نمایش ریشه افعال شکل گذشته ساده درنظر گرفته میشود و سایر اطلاعات صرفی فعل در متغیر ذیل وجود دارد:
خروجی کد نمونه به شرح زیر است:
{دانشجویان,[دانشجو,دانش,دان]} {زیادی,[زیاد]} {به,[به]}
{مدارس,[مدرسه]} {استعدادهای,[استعداد]} {درخشان,[درخشان]} {راه,[راه]}
{پیدا,[پیدا]} {نخواهند کرد,[نکرد]} {که,[که]} {با,[با]} {مشکلات,[مشکل]}
{بعدی,[بعد]} {مواجه,[مواجه]} {شوند,[شد]} {.,[]}
string baseAddress = “https://api.text-mining.ir/api/”;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, GetJWTToken());
string json = JsonConvert.SerializeObject(new
{
Text = “دانشجویان زیادی به مدارس استعدادهای درخشان راه پیدا نخواهند کرد که با مشکلات بعدی مواجه شوند.”,
CheckSlang = false, // بررسی و تبدیل کلمات محاوره ای به شکل رسمی انجام نشود
ComplexSentence = false // شکستن جملات مرکب به چند جمله
});
var response = client.PostAsync(baseAddress + “Stemmer/LemmatizeText2Phrase”, new StringContent(json, Encoding.UTF8, “application/json”)).Result;
string resp = response.Content.ReadAsStringAsync().Result;
JArray tokens = JArray.Parse(resp);
var result = new StringBuilder();
foreach (JObject token in tokens.Children<JObject>())
{
result.Append(\$”{{{token[“word”]},[“);
foreach (var root in token[“rootWords”].Children<JValue>())
result.Append(root.Value<string>()).Append(‘,’);
if (result[result.Length – 1].Equals(‘,’))
result.Remove(result.Length – 1, 1);
result.AppendLine(“]}”);
}
Console.WriteLine(result.ToString());
ریشهیابی یک متن
متن بهمراه کلمات ریشه (افعال به سوم شخص گذشته ساده تبدیل میشوند)
آدرس و نوع تابع وبسرویس
POST https://api.text-mining.ir/api/Stemmer/LemmatizeText2Text
مدل دریافتی به عنوان پارامتر
عنوان مقدار پیشفرض توضیح پارامتر
inputText ورودی به شکل متن
string baseAddress = “https://api.text-mining.ir/api/”;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, GetJWTToken());
string json = JsonConvert.SerializeObject(“دانشجویان زیادی به مدارس استعدادهای درخشان راه پیدا نخواهند کرد که با مشکلات بعدی مواجه شوند.”);
var response = client.PostAsync(baseAddress + “Stemmer/LemmatizeText2Text”, new StringContent(json, Encoding.UTF8, “application/json”)).Result;
string resp = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(resp);
خروجی مثال کد بالا: دانشجو زیاد به مدرسه استعداد درخشان راه پیدا نکرد که با مشکل بعد مواجه شد.
کلام آخر : امیدوارم که دانش کافی در زمینه ادامه مستندات وب سرویس متن کاوی بدست آورده باشید.