多语言 Google Meet Summarizer 和 Python 项目

machine learningpythonprogramming

简介

多语言 Google Meet Summarizer 是一款工具/chrome 扩展程序,可以为多种语言的 Google Meet 对话创建转录。在 COVID 时期,人们需要一种能够有效总结会议、课堂讲座和对流视频的工具。因此,这样的工具在这方面非常有用。

在本文中,让我们概述项目结构,并在代码的帮助下探索一些实现方面。

这个项目是关于什么的?

这是一个简单的 chrome 扩展,在 google meet 会话期间启用时,可以生成会议记录并以多语言格式总结对话。

我们将使用什么工具?

  • 前端 - Reactjs、HTML、CSS、Bootstrap

  • 后端 - Django REST 服务

  • Python (ML ) - Pytorch、NLTK 库

  • DB - SQLite

流程图和所需步骤项目

  • 用户开始会议并同时启用扩展程序。

  • 然后,扩展程序使用 HTML 音频提取会议音频并将其转录。

  • 然后,它将数据发送到后端,后端使用 ML 算法对文本进行摘要。

  • ML 翻译模型将摘要文本翻译成目标语言。

  • 最后,可以从扩展程序下载转录。

项目实施

UI(前端)和后端

  • 使用 Django Rest API 创建身份验证服务,以允许用户登录并记录转录内容。

  • 在 Django 中创建模型并使用 JWT 令牌。REST API 视图用于生成令牌和验证用户。

  • 接下来,使用 SQL 语言中的 Relation 在 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 Summarizer 是一个简单的项目,可以使用与前端、后端和机器学习相关的技术栈以多种语言总结 Google 会议。


相关文章