در این مطلب قصد داریم در مورد وب سرویس متن کاوی توضیح دهیم:
شروع کار
به مستدات سرویس متنکاوی خوش آمدید(وب سرویس متن کاوی).
متنکاوی، مجموعهای از خدمات آنلاین مربوط به پردازش متون فارسی را در قالب Rest API در اختیار برنامهنویسان قرار میدهد.
برای اطلاع از میزان محدودیتهای نسخه رایگان API به صفحه قوانین و مقررات مراجعه فرمایید.
توجه:
برای استفاده از هر یک از امکانات وب سرویس متنکاوی باید کلید API داشته باشید همچنین برای جلوگیری از تکرار در نمونه کد بعضی از زبانها مانند پایتون، بعضی از توابع پایهای مثل تابع فراخوانی Rest API یا دریافت توکن تنها یک بار اضافه شدهاند.
دریافت کلید API برنامهنویسان برای استفاده از امکانات از سایت https://app.text-mining.ir میباشد.
استفادهکنندگان رایگان از API، حداکثر مجاز به ارسال روزی ۱۰۰ درخواست (فراخوانی) و در هر ثانیه یک درخواست و هر فراخوانی (درخواست) با طول ورودی متنی کمتر از 3000 کاراکتر (یونیکد) یا 6000 هزاربایت میباشند.
احراز هویت
اولین گام در استفاده از توابع API متنکاوی احراز هویت است. احراز هویت به وسیله توکنهای JWT در درخواست http انجام میشود. برای شروع باید یک کلید API دریافت کنید. سپس برای دریافت توکن تابع زیر را فراخوانی کنید
GET https://api.text-mining.ir/api/Token/GetToken?apikey=YOUR_API_KEY
عبارت YOUR_API_KEY را با مقدار کلید API دریافتی خود جایگزین کنید
بعد از دریافت خروجی که یک JWT Token است باید برای احراز هویت (Authentication & Authorization) برای استفاده از هر یک از توابع وب سرویس در Header مربوط به Http Request خود برای آن تابع مقدار توکن دریافتی را وارد کنید. کدهای نمونه فراخوانی توابع وب سرویس این مورد را به شما نمایش میدهند
مطمئن شوید که YOUR_API_KEY را با کلید API دریافتی خود جایگزین کردهاید
private string GetJWTToken()
{
string jwtToken = string.Empty;
HttpClient client = new HttpClient();
var response = client.GetAsync($”https://api.text-mining.ir/api/Token/GetToken?apikey={YOUR_API_KEY}”).Result;
if (response.IsSuccessStatusCode)
{
string res = response.Content.ReadAsStringAsync().Result;
jwtToken = (string) JObject.Parse(res)[“token”];
}
return jwtToken;
}
در صورت موفق بودن درخواست، خروجی شبیه زیر برگردانده میشود که TOKEN_VALUE همان توکن احراز هویت شماست.
{
"token": "TOKEN_VALUE"
}
پیش پردازش متون
استانداردسازی متن ورودی
این تابع، متن ورودی را با یکسانسازی حروف عربی و فارسی ، اصلاح نیمفاصلهها و فاصلهها، تبدیل به متن استاندارد میکند. در این تابع بیشتر از ۹۰۰ جایگزینی کاراکتر بر روی متن ووردی انجام میشود
آدرس و نوع تابع وبسرویس
POST https://api.text-mining.ir/api/PreProcessing/NormalizePersianWord
مدل دریافتی به عنوان پارامتر
عنوان مقدار پیشفرض توضیح پارامتر
text متن ورودی
replaceWildChar true آیا کاراکترها و علائم خاص با نسخه استاندارد آن جایگزین شوند
replaceDigit true آیا ارقام (اعداد) عربی و انگلیسی با ارقام استاندارد فارسی جایگزین شوند
refineSeparatedAffix true آیا نیم فاصله بین پسوند و پیشوند کلمات اصلاح شود
refineQuotationPunc true آیا فاصله گذاری استاندارد بین علائم و عبارت نقل قول اعمال شود
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,
RefineQuotationPunc = false,
RefineSeparatedAffix = true
});
var response = client.PostAsync(_baseAddress + “PreProcessing/NormalizePersianWord”, new StringContent(json, Encoding.UTF8, “application/json”)).Result;
string resp = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(resp);
خروجی مثال کد بالا: ولی اگر دکمه مکث رو لمس کنیم کلا متن چندین صفحه جابه جا میشه و دیگه نمیشه فهمید کدوم آیه تلاوت میشود باید چی کنیم؟.
در این مطلب در مورد وب سرویس متن کاوی توضیح دادیم در مطلب بعد در مورد مستندات سرویس متن کاوی صحبت خواهیم کرد.
کلام آخر : امیدوارم که با بخشی از وب سرویس متن کاوی آشنا شده باشید وجهت استفاده وآ شنایی بیشتر به منبع مراجعه نمائید