Spaces:
Runtime error
Runtime error
| # -*- coding: utf-8 -*- | |
| """21C11027.ipynb | |
| Automatically generated by Colaboratory. | |
| Original file is located at | |
| https://colab.research.google.com/drive/1z_jG4sUgsIhZRoikoXxYMHNAMpiYlWAW | |
| **KHAI THÁC NGỮ LIỆU VĂN BẢN NÂNG CAO** | |
| * **Họ và tên:** Huỳnh Viết Thám | |
| * **Mã số học viên:** 21C11027 | |
| # Cài đặt thư viện cần thiết | |
| """ | |
| from serpapi import GoogleSearch | |
| def checkPaper(publication_name): | |
| params = { | |
| "api_key": "3fb62919a0e61a6a58cf9815798253799210ab69fbc3c9c9a81785c7cabcc3fa", | |
| "engine": "google", | |
| "q": "*", | |
| "location": "Austin, Texas, United States", | |
| "google_domain": "google.com", | |
| "gl": "us", | |
| "hl": "en", | |
| "as_sitesearch": "github.com" | |
| } | |
| # q ở đây là query. Ở bước này, tiến hành gán input mà người dùng nhập vào vào trong param đã khởi tạo ở trên | |
| params["q"] = publication_name | |
| # Ở bước này, tiến hành search bằng thư viện GoogleSearch đã import ở trên, với tham số là param sau khi đã cập nhập câu query q | |
| search = GoogleSearch(params) | |
| # Tiến hành lưu kết quả tìm được vào results, để từ đó có thể dễ dàng truy xuất khi cần thiết | |
| results = search.get_dict() | |
| # Lấy top 5 kết quả search ra đầu tiên dưới dạng json | |
| top5_result=results["organic_results"][0:5] | |
| # Bây giờ sẽ tạo 2 biến, biến thứ nhất là github_link, biến này sẽ kiểm tra xem là kết quả tìm được trong top5 đó có link github hay không? nếu có thì sẽ lưu thông tin vào backup_link | |
| github_link = False | |
| backup_link = None | |
| # Tổng số từ khoá trong việc tìm kiếm nếu trên 70% thì sẽ cho ra kết quả. | |
| # Số 70% ở đây là một con số có thể thay đổi được, chưa có thống kê cụ thể sử dụng số nào thì hiệu quả cao hơn | |
| threshold = 0.7 | |
| #Chạy vòng for để tìm kiếm link github trong top5 đã lấy ở trên | |
| for result in top5_result: | |
| # Tách các từ trong tên bài báo nhập vào ở trên. Mục tiêu là để ở bước so sánh mình sẽ lấy từng từ ra dò vào kết quả cho nhanh chóng | |
| word_list = publication_name.split(' ') | |
| len_word_list = len(word_list) | |
| count = 0 | |
| # Trong các kết quả trả về, nếu không có link github thì bỏ qua, còn nếu có link github thì sẽ tiến hành kiểm tra xem từng từ được tách ở trên so với từ trong link git trùng khớp được bao nhiêu phần trăm. Trên 70% như đã khai báo ở trên là được. | |
| if "https://github.com/" in result['link']: | |
| for word in word_list: | |
| if word in result['snippet']: | |
| count+=1 | |
| if count >= count/len_word_list: | |
| github_link = True | |
| backup_link = result['link'] | |
| break | |
| # Kiểm tra xem biến check link git đã là true hay chưa, nếu là true thì là có link, còn không thì không có link | |
| if github_link == False: | |
| return "Currently, the github link for the entered article title has not been found. Please check back later!" | |
| else: | |
| return backup_link + " | Here is the link github found based on your input. Please check the link above." | |
| import gradio as gr | |
| demo = gr.Interface(fn=checkPaper, inputs="text", outputs="text") | |
| demo.launch(share = True) |