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) |