سکو-استخراج عبارات کلیدی

سرویس: استخراج عبارات کلیدی | Keyphrase Extractor

تعریف مسئله

در این مسئله، هدف مشخص کردن عبارات مهم و موضوعی متن به صورت خودکار است. در بسیاری از سایت های خبری این عبارات در قسمت انتهایی خبر در یک بخش جداگانه، آورده می شوند.

چگونه کار میکند

سرویس ما، می‌تواند عبارات کلیدی یک متن را مشخص کند. ضمنا محدودیتی در تعداد کلمات عبارات کلیدی پیش‌بینی‌شده وجود ندارد.

الگوریتم

غالب روشها، حل این مسئله را در سه فاز توصیف می کنند.

کاربرد سرویس

کلمات کلیدی در یک متن،‌ می‌تواند جست و جوی راحت تر آن‌ها را توسط کاربران به همراه داشته باشد. برای مثال کاربر به راحتی می‌تواند با کلیک کردن یک عبارت کلیدی، از سایر خبرهای مرتبط با آن عبارت کلیدی،‌ مطلع شود. علاوه بر این، این سرویس می‌تواند به عنوان یک واحد پیش‌پردازشی در سرویس‌های متعددی مانند سرویس ابر کلمات که کلمات کلیدی یک بازه زمانی را در قالب ابری از کلمات خروجی می‌دهد،‌ مورد استفاده قرار بگیرد.

ورودی API

شما باید از طریق متود Post خبرهای مورد نظرتان را در قالب یک فایل json ارسال کنید. شما می‌توانید ورودی خود را به صورت آرایه‌ای از خبرها بدهید که در این صورت با سرعت بالاتری خروجی مورد نظرتان را دریافت خواهید کرد. در زیر یک نمونه که شامل یک خبر است داده شده است: {"text": ["حسن روحانی رئیس جمهور ایران است"] }

خروجی API

برای هر متن ورودی، یک لیست شامل عبارات کلیدی آن خروجی داده می‌شود. برای مثال بالا، خروجی به صورت زیر خواهد بود: [ [ "حسن روحانی" ] ] عبارت کلیدی «حسن روحانی» برای جمله بالا خروجی داده شده است.

نمونه کد PHP

                                        $ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://sakoo.dataak.com/api/services/nlp/keyphrase_extractor");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
 $data = [
     
    'text'=>'روحیه تیمی در دیتاک از نان شب هم واجب‌تر است و افرادی که توانایی کار تیمی ندارند در کنار ما آرامش خود را از دست خواهند داد',
    'token'=> 'token'
 ];          
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 $server_output = curl_exec($ch);
 print_r($server_output);
                                    

نمونه کد java

                                        import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

    public class MTest {

        public static void main(String[] args) throws Exception{
            URL url = new URL("https://sakoo.dataak.com/api/services/nlp/keyphrase_extractor");
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            Map<String, String> parameters = new HashMap<>();
            con.setDoOutput(true);
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            con.setConnectTimeout(5000);
            con.setReadTimeout(5000);
            con.setInstanceFollowRedirects(false);
            
            String token="token";
            token=java.net.URLEncoder.encode(token, "UTF-8").replace("+","%20");
            
            String urlParameters  = "text=روحیه تیمی در دیتاک از نان شب هم واجب‌تر است و افرادی که توانایی کار تیمی ندارند در کنار ما آرامش خود را از دست خواهند&token="+token;
            try(OutputStream os = con.getOutputStream()) {
                byte[] input = urlParameters.getBytes("utf-8");
                os.write(input, 0, input.length);
            }
            
            DataOutputStream out = new DataOutputStream(con.getOutputStream());
            out.flush();
            out.close();

            int status = con.getResponseCode();
            String s=con.getResponseMessage();
            Reader streamReader = null;
            
            if (status > 299) {
               
                streamReader = new InputStreamReader(con.getErrorStream());
            } else {
                streamReader = new InputStreamReader(con.getInputStream());

                BufferedReader in = new BufferedReader(
                        new InputStreamReader(con.getInputStream()));
                String inputLine;
                StringBuffer content = new StringBuffer();
                while ((inputLine = in.readLine()) != null) {
                    content.append(inputLine);
                }
                in.close();
                
                System.out.println(content);
            }
            con.disconnect();
        }
    }
                                    

نمونه کد python

                                        import requests
url = 'https://sakoo.dataak.com/api/services/nlp/keyphrase_extractor'
data = {
    'text': 'کمیته انضباطی فدراسیون فوتبال، رای خود را درباره دیدار تیم های صنعت نفت آبادان و پیکان از سری رقابتهای لیگ برتر صادر کرد.',
    'token':'token'
}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.3'}
response = requests.post(url, data=data, headers=headers)

print(response.text)