多语言Google Meet摘要工具和Python项目
介绍
多语言Google Meet摘要工具是一个可以在多种语言中为Google Meet对话创建文字记录的工具/Chrome扩展。在COVID时期,人们需要一种能够有效总结会议、教室讲座和演讲视频的工具。因此,这样的工具在这方面非常有用。
在本文中,让我们通过代码的帮助来了解项目的结构概述和一些实现方面。
该项目是关于什么的
这是一个简单的Chrome扩展,当在Google Meet会议期间启用时,可以生成会议记录并以多语言格式总结对话。
我们将使用哪些工具
项目所需的流程图和步骤
-
用户启动会议并同时启用扩展。
-
然后扩展使用HTML音频提取会议的音频并进行转录。
-
然后将数据发送到后端,后端使用ML算法对文本进行摘要。
-
ML翻译模型将摘要文本翻译成目标语言。
-
最后,可以从扩展中下载摘要。
项目实施
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
网站排名/位置和搜索引擎优化在当今的搜索趋势和结果相关性中起着至关重要的作用。搜索引擎排名广泛被许多大型科技组织如谷歌采用,配备了最先进的算法。
在本文中,我们将探讨机器学习如何影响网站的排名,以及如何利用网站数据来提升最先进的算法。
机器学习在排名中如何有用?
有一段时间,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 Summarizer 是一个简单的项目,可以使用与前端、后端和机器学习相关的技术栈,在多种语言下总结一个 Google 会议。