当前位置: 首页 > article >正文

Midjourney技术浅析(二):文本预处理过程

Midjourney 的用户通过输入文本描述(Prompts)来生成高质量的图像。为了将用户输入的文本转化为机器可理解的格式,并提取其中的语义信息,Midjourney 依赖于强大的自然语言处理(NLP)预处理技术。

一、NLP 预处理概述

NLP 预处理是自然语言处理的第一步,其主要目的是将原始文本转换为机器可理解的格式,并去除噪声信息,为后续的语义理解、特征提取和模型训练做好准备。

Midjourney 的 NLP 预处理过程主要包括以下几个步骤:

1.分词(Tokenization): 将文本分割成单词、词组、符号等基本单元。

2.词形还原(Lemmatization): 将单词还原为其基本形式(词根)。

3.去除停用词(Stop Words Removal): 去除对语义理解没有帮助的常用词。

4.拼写纠错(Spell Correction): 纠正文本中的拼写错误。

5.其他预处理步骤: 例如去除标点符号、转换为小写、去除特殊字符等。

二、详细步骤与模型

2.1 分词(Tokenization)

目标: 将连续的自然语言文本分割成更小的、基本的语义单元(tokens),例如单词、词组、标点符号等。

方法:

1.基于规则的词法分析器:

  • 使用正则表达式或预定义的规则来分割文本。
  • 例如,使用空格、标点符号等作为分隔符。

2.基于统计的词法分析器:

  • 使用统计模型(例如隐马尔可夫模型(HMM)、条件随机场(CRF))来学习文本分割的规律。

3.基于深度学习的词法分析器:

  • 使用神经网络模型(例如 LSTM、Transformer)进行序列标注任务,将文本分割成 tokens。

Midjourney 使用的模型: 基于深度学习的词法分析器,例如 BERT Tokenizer 或 SentencePiece Tokenizer

  • BERT Tokenizer: 使用 WordPiece 算法,将单词拆分为子词(subword),以处理词汇表外的单词和稀有词。
  • SentencePiece Tokenizer: 一种无监督的分词器,可以将文本分割成任意长度的子词。

示例:

输入文本:  "The quick brown fox jumps over the lazy dog."
分词结果:  ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog", "."]
2.2 词形还原(Lemmatization)

目标: 将单词还原为其基本形式(词根),以减少词汇表大小,并统一语义。

方法:

1.基于规则的词形还原:

  • 使用预定义的规则和词典将单词转换为词根。
  • 例如,将“running”还原为“run”,将“better”还原为“good”。

2.基于统计的词形还原:

  • 使用统计模型(例如 HMM)来学习单词形态变化的规律。

3.基于深度学习的词形还原:

  • 使用神经网络模型(例如 LSTM、Transformer)进行序列标注任务,将单词还原为词根。

Midjourney 使用的模型: 基于深度学习的词形还原器,例如 spaCy 的词形还原器 或 Stanford NLP 的词形还原器

示例:

输入单词:  "running"
词形还原结果:  "run"
2.3 去除停用词(Stop Words Removal)

目标: 去除对语义理解没有帮助的常用词,例如“the”、“is”、“at”等。

方法:

1.使用预定义的停用词表:

  • 预定义的停用词表包含常见的停用词,例如英语中的“the”、“is”、“at”等。
  • 去除 tokens 中出现在停用词表中的单词。

2.基于统计的方法:

  • 使用统计方法(例如词频-逆文档频率(TF-IDF))来识别停用词。
  • 词频越高,逆文档频率越低的单词越有可能是停用词。

Midjourney 可能使用的方法: 使用预定义的停用词表,并结合统计方法进行优化。

示例:

输入 tokens:  ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog", "."]
去除停用词后:  ["quick", "brown", "fox", "jumps", "over", "lazy", "dog", "."]
2.4 拼写纠错(Spell Correction)

目标: 纠正文本中的拼写错误,以提高文本质量。

方法:

1.基于词典的方法:

  • 使用词典和编辑距离算法(例如 Levenshtein 距离)来识别和纠正拼写错误。

2.基于统计语言模型的方法:

  • 使用统计语言模型(例如 n-gram 模型)来评估拼写纠正后的文本的概率。

3.基于深度学习的方法:

  • 使用神经网络模型(例如 Transformer)进行序列到序列的拼写纠正任务。

Midjourney 使用的模型: 基于深度学习的拼写纠错器,例如 BERT Spell Checker 或 GECToR(Grammatical Error Correction: Token Classification with Transformers)。

示例:

输入文本:  "Thiss is a exampel of speling corection."
拼写纠错后:  "This is an example of spelling correction."

http://www.kler.cn/a/460390.html

相关文章:

  • springboot集成qq邮箱服务
  • 【深度学习基础之多尺度特征提取】多尺度卷积神经网络(MS-CNN)是如何在深度学习网络中提取多尺度特征的?附代码(二)
  • OpenCV的人脸检测模型FaceDetectorYN
  • 实践:事件循环
  • 解决vue-i18n在非.vue文件中,在其他js文件中无法使用的问题
  • 2024年中国新能源汽车用车发展怎么样 PaperGPT(一)
  • 002 用户数据的构造和渲染
  • 从0到机器视觉工程师(一):机器视觉工业相机总结
  • python23-常用的第三方库01:request模块-爬虫
  • UE(虚幻)学习(三) UnrealSharp插件中调用非托管DLL
  • 前端通过函数方法触发文件上传、限制文件类型、限制文件大小、上传的进度
  • 仿快团团商品详情页底部按钮头像轮播(uniapp)
  • XQR5VFX130-1CN1752V,,具有高度的可编程性和灵活性的FPGA中文技术资料
  • 摄像头监视脚本
  • Wonder Dynamics技术浅析(一)
  • [算法] [leetcode-1137] 第 N 个泰波那契数
  • 【自动驾驶汽车通讯协议】RGMII通信技术详解
  • 自学记录:鸿蒙5使用ArkTS和ArkUI实现Live View功能
  • 【经管】上市公司供应链风险数据测算数据集+dofile(2008-2023年)
  • gitlab的搭建及使用
  • udp分片报文发送和接收
  • 经典排序算法:冒泡排序与选择排序
  • List排序的方法
  • JVM和异常
  • 【华为OD-E卷 - 机房布局 100分(python、java、c++、js、c)】
  • Edge如何获得纯净的启动界面