多語言 Google Meet 摘要器和 Python 專案
簡介
多語言 Google Meet 摘要器是一個工具/Chrome 擴充套件程式,可以為多種語言的 Google Meet 會話建立轉錄。在 COVID 期間,人們需要一個能夠有效總結會議、課堂講座和視訊會議的工具。因此,這樣的工具在這方面非常有用。
在本文中,讓我們概述一下專案結構,並藉助程式碼探討一些實現方面。
這個專案是關於什麼的?
這是一個簡單的 Chrome 擴充套件程式,在 Google Meet 會話中啟用時,可以生成會議轉錄並以多種語言總結對話。
我們將使用什麼工具?
前端 - Reactjs,HTML,CSS,Bootstrap
後端 - Django REST 服務
Python (機器學習) - Pytorch,NLTK 庫
資料庫 - SQLite
專案流程圖和步驟
使用者啟動會議並同時啟用擴充套件程式。
然後,擴充套件程式使用 HTML 音訊提取會議音訊並進行轉錄。
然後,它將資料傳送到後端,後端使用機器學習演算法對文字進行摘要。
機器學習翻譯模型將摘要後的文字翻譯成目標語言。
最後,可以從擴充套件程式下載轉錄。
專案實施
UI(前端)和後端
使用 Django Rest API 建立身份驗證服務,允許使用者登入並儲存轉錄。
在 Django 中建立模型並使用 JWT 令牌。用於生成令牌和驗證使用者的 REST API 檢視。
接下來,使用 SQL 語言在 SQLite 中建立具有關係的資料庫。
建立轉錄模式,例如 id、名稱、日期、主機、標題、持續時間和文字。
接下來,建立一個 REST API,Chrome 擴充套件程式將使用它來發送來自前端的資料。
在後端,還使用 Python、NLTK 和 NLP 建立用於文字摘要和翻譯的 API。
程式碼實現
示例
from googletrans import Translator
LANG_CODES = {
'ENGLISH': 'en',
'HINDI': 'hi',
'MARATHI': 'mr',
'ARABIC': 'ar',
'BENGALI': 'bn',
'CHINESE': 'zh-CN',
'FRENCH': 'fr',
'GUJARATI': 'gu',
'JAPANESE': 'ja',
'KANNADA': 'kn',
'MALAYALAM': 'ml',
'NEPALI': 'ne',
'ORIYA': 'or',
'PORTUGUESE': 'pt',
'PUNJABI': 'pa',
'RUSSIAN': 'ru',
'SPANISH': 'es',
'TAMIL': 'ta',
'TELUGU': 'te',
'URDU': 'ur'
}
def langauge_translate(input_data, input_lang, output_lang):
input_lang, output_lang = input_lang.upper(), output_lang.upper()
tr = Translator()
text_translate = tr.translate(
input_data, src=LANG_CODES[input_lang], dest=LANG_CODES[output_lang])
output_text = text_rtanslate.text
return(output_text)
機器學習演算法
摘要
資料清洗 ---------> 分詞 ------------> 詞彙生成/排序/頻率 -------------->句子選擇 --------------> 摘要
翻譯
初始化----->嵌入生成 ------>編碼 ------------>解碼 ------------> 摘要
用於摘要和翻譯的 Python 程式碼
示例
from nltk.tokenize import sent_tokenize,word_tokenize
import nltk
from nltk.corpus import stopwords
nltk.download('stopwords')
nltk.download('punkt')
def text_clean(txt):
data = txt.split('**')
data.pop(0)
cleaned_data = ""
i = 0
for t in data:
if i % 2 != 0:
cleaned_data += str(t)
i += 1
return cleaned_data
stopwords = set(stopwords.words("english"))
def word_token(txt):
w = word_tokenize(txt)
return w
def frequency_table(txt):
frequencyT = dict()
words = word_token(txt)
for w in words:
w = w.lower()
if w in stopwords:
continue
if w in frequencyT:
frequencyT[w] += 1
else:
frequencyT[w] = 1
return frequencyT
def Senttokenizer(txt):
sents = sent_tokenize(txt)
return sents
def sents_rank_table(txt):
sent_value = dict()
freq_Table = frequency_table(txt)
sents = Senttokenizer(txt)
for s in sents:
for word, freq in freq_Table.items():
if word in s.lower():
if s in sent_value:
sent_value[s] += freq
else:
sent_value[s] = freq
return sent_value
def summary(txt):
sum = 0
sent_value = sents_rank_table(txt)
for sentence in sent_value:
sum += sent_value[sentence]
average = int(sum / len(sent_value))
summary = ""
sents = Senttokenizer(txt)
for s in sents:
if (s in sent_value) and (sent_value[s] > (1.2 * average)):
summ += " " + s
return summ
def main(input_text):
# getting text cleaned
if("**" not in input_text):
txt = input_text
else:
cleanedtext = text_clean(input_text)
txt = cleanedtext
summarized_text = summary(txt)
print("Summary: ", summarized_text)
return summarized_text
textdata = "網站排名/位置和 SEO 在當今的搜尋趨勢以及獲得的結果的相關性中起著至關重要的作用。搜尋引擎\
排名被許多大型科技公司(如今天的谷歌)廣泛採用,並使用最先進的演算法。\
在本文中,我們將探討機器學習如何影響網站排名,以及如何利用網站資料來為最先進的演算法提供動力。\
機器學習如何在排名中發揮作用?\
一段時間以來,SEO 專家一直避免使用深度學習和神經\
網路來開發排名演算法,但今天,隨著機器學習和深度學習演算法實現的多功能性,這種\
情況已經完全改變了。\
今天,谷歌、微軟和雅虎等大型組織正在積極利用這些演算法。"
main(textdata)
輸出
Summary: Search Engine Ranking is widely adopted by many big tech organizations like google today with state-of-the-art algorithms.In this article, we are going to explore how Machine Learning can impact the ranking of sites and how it can utilize site data to fuel state-of-the-art algorithms.How can Machine Learning be useful in Ranking?For some time, back specialists in SEO have been keeping themselves away using Deep Learning and neuralnetworks for developing ranking algorithms, but today with the versatility of implementation of machine learning and deep learning algorithms this scenario has completely changed.Today big organizations like Google, Microsoft, and Yahoo are actively exploiting these algorithms.
結論
Google Meet 摘要器是一個簡單的專案,可以使用與前端、後端和機器學習相關的技術堆疊來總結多種語言的 Google Meet。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP