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

微网站访问量商务网站建设公司排名

微网站访问量,商务网站建设公司排名,四川省住房城乡建设厅,rttheme 18 wordpress一、分词的核心粒度 1. 通用定义粒度英文示例中文示例特点词级["unhappy"]["自然语言处理"]语义完整,但OOV严重子词级["un", "happy"]["深度", "学习"]平衡效率与语义(主流)字符…

一、分词的核心粒度

1. 通用定义

粒度英文示例中文示例特点
词级["unhappy"]["自然语言处理"]语义完整,但OOV严重
子词级["un", "happy"]["深度", "学习"]平衡效率与语义(主流)
字符级["u", "n",...]["深", "度",...]无OOV但语义模糊

2. 中文特殊挑战

  • 无空格分隔:需依赖算法或工具切分
  • 多粒度语义
    • 字:"鱼"(单字成词)
    • 词:"鲨鱼"(复合语义)
    • 短语:"鲸鲨保护区"(需动态拆分)

二、分词算法原理深度剖析

1. BPE(Byte Pair Encoding)

  • 核心思想:通过迭代合并最高频的字节对构建子词词汇表
  • 训练步骤
    1. 初始化:将所有单词拆分为字符(如"low"l, o, w
    2. 统计相邻符号对频率,合并最高频对(如es合并为es
    3. 重复合并直到达到目标词汇表大小
  • 中文适配
    • 将中文按单字初始化,合并高频字组合(如"中国"可能合并为整体)
  • 典型应用:GPT系列、DeepSeek
  • 示例
    # 训练语料:"low", "lower", "newest"
    # 第1轮合并:e+s → "es"(出现2次)
    # 第2轮合并:"es"+"t" → "est"
    # 最终词汇表:["l", "o", "w", "e", "r", "n", "est", ...]
    

2. WordPiece

  • 核心思想:基于概率合并子词(BERT专用)
  • 与BPE的区别
    特性BPEWordPiece
    合并标准频率最高概率提升最大
    数学基础计数统计语言模型概率
    标记方式直接合并##前缀标记延续
  • 训练步骤
    1. 初始化同BPE(字符级拆分)
    2. 计算每对子词合并后的语言模型概率提升:
      score = (freq_pair) / (freq_first × freq_second)
    3. 合并得分最高的子词对
  • 中文处理
    • 强制单字拆分(原始BERT中文版),但可训练自定义合并
  • 示例
    # 合并计算:"un"+"happy" vs "unh"+"appy"
    # 选择使得P("unhappy")/P("un")P("happy")最大化的组合
    

3. Unigram Language Model

  • 核心思想:反向删除最不重要的子词(SentencePiece默认)
  • 训练步骤
    1. 初始化一个大词汇表(如所有常见子词+字符)
    2. 迭代删除使得整体语言模型概率损失最小的子词
    3. 保留最终目标大小的词汇表
  • 优势
    • 可动态调整词汇表大小
    • 支持概率采样生成多种分词结果
  • 中文示例
    # 初始词汇表:["自然", "语言", "自", "然", "语", "言"]
    # 删除"自"后检查语料概率变化,保留最优组合
    

4. 中文专属方法

最大匹配算法
  • 原理:基于词典的贪婪匹配
    • 正向最大匹配:从首字开始找最长词("中国人民银行"["中国", "人民", "银行"]
    • 反向最大匹配:从末尾倒推(更准确)
  • 缺点:依赖词典质量,无法处理新词
HMM/CRF序列标注
  • 原理:将分词转化为字标签预测(B:词首,M:词中,E:词尾)
    # 输入:"深度学习" → 标签序列:["B", "E", "B", "E"]
    # 输出:["深度", "学习"]
    
  • 优势:能学习上下文依赖(如"下雨天留客天"的歧义切分)

三、四大模型分词实战

1. BERT家族

  • 算法:WordPiece
  • 英文"playing"["play", "##ing"]
  • 中文
    • 官方版:强制单字 "模型"["模", "型"]
    • 优化版:部分词保留(需自定义训练)

2. GPT/DeepSeek

  • 算法:BPE(多语言优化)
  • 英文"deepseek"["deep", "seek"]
  • 中文
    • 高频词保留:"中国"["中国"]
    • 低频词拆分:"区块链"["区块", "链"]

3. 传统Transformer

  • 灵活适配:可配置BPE/WordPiece
  • 中文建议:使用SentencePiece支持混合粒度

四、中英文对比案例

1. 同一模型对比

# BERT英文 vs 中文
英文:tokenizer("unhappy")["un", "##happy"]
中文:tokenizer("不开心")["不", "##开", "##心"]# DeepSeek英文 vs 中文
英文:tokenizer("deepseek")["deep", "seek"]
中文:tokenizer("深度求索")["深度", "求索"]  # 若词汇表存在

2. 同一文本不同模型

输入:"自然语言处理强大"
- BERT中文:["自", "然", "语", "言", "处", "理", "强", "大"]
- DeepSeek:["自然语言处理", "强大"]  # 理想情况
- Jieba+Word级:["自然语言", "处理", "强大"]

五、技术选型指南

算法训练复杂度支持OOV多语言友好典型应用场景
BPE★★★★★GPT、多语言生成
WordPiece★★★☆☆BERT、分类任务
Unigram LM★★★★☆SentencePiece通用场景
最大匹配★☆☆☆☆词典驱动的简单系统
HMM/CRF部分★★☆☆☆中文精准切分

1. 根据任务选择

任务类型推荐方案原因
中文分类/NERBERT单字+CRF层细粒度捕捉实体边界
中英混合生成DeepSeek/GPT的BPE统一处理多语言
小样本中文任务词级+传统模型避免子词拆分带来的噪声

2. 根据数据选择

  • 数据量小
    使用预训练分词器(如BERT中文版)
  • 垂直领域
    自定义训练子词模型(添加术语如"磷酸奥司他韦"

六、进阶优化技巧

1. 中文混合分词

# 结合Jieba与子词(适合专业领域)
import jieba
from transformers import AutoTokenizertext = "量子计算突破性进展"
words = jieba.lcut(text)  # ["量子计算", "突破性", "进展"]
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/deepseek-llm")
tokens = [token for word in words for token in tokenizer.tokenize(word)]
# 输出:["量子", "计算", "突破性", "进展"]

2. 词汇表扩展

# 在DeepSeek中新增专业词汇
new_tokens = ["大语言模型", "AGI"]
tokenizer.add_tokens(new_tokens)
print(tokenizer.tokenize("AGI将推动大语言模型发展"))
# 输出:["AGI", "将", "推动", "大语言模型", "发展"]

七、总结图表

维度BERT系列GPT/DeepSeek传统词级
中文粒度单字为主动态子词固定词语
英文处理WordPiece细拆BPE合并高频空格分词
适合场景理解任务生成/跨语言小样本/规则系统
扩展成本需重新训练可动态添加需更新分词词典

八、实战:训练自定义分词器

1. 使用SentencePiece训练BPE模型

import sentencepiece as spm# 训练配置
spm.SentencePieceTrainer.train(input="corpus.txt",model_prefix="zh_bpe",vocab_size=30000,character_coverage=0.9995,model_type="bpe"  # 可改为"unigram"
)# 加载使用
sp = spm.SentencePieceProcessor()
sp.load("zh_bpe.model")
print(sp.encode_as_pieces("深度学习模型"))  # ['▁深度', '学习', '模型']

2. HuggingFace训练WordPiece

from tokenizers import BertWordPieceTokenizertokenizer = BertWordPieceTokenizer()
tokenizer.train(files=["corpus.txt"],vocab_size=30000,special_tokens=["[UNK]", "[PAD]"]
)
tokenizer.save_model("output_dir")# 测试
tokenizer.tokenize("气候变化应对")  # ['气候', '变化', '应对']

九、关键问题解答

Q1:为什么BERT中文版坚持用单字?

  • 确保所有文本可处理(规避分词错误传递)
  • 汉字本身携带语义(相比英文字母)
  • 可通过Transformer层学习词语组合

Q2:如何选择词汇表大小?

  • 英文:通常30K-50K
  • 中文:
    • 单字级:6K-8K(覆盖常用汉字)
    • 子词级:建议20K-50K(平衡效率与语义)
  • 多语言:100K+(如DeepSeek的128K)

Q3:处理专业术语(如医学名词)?

  • 方法1:添加强制保留词到分词器
    # DeepSeek添加新词
    tokenizer.add_tokens(["冠状动脉粥样硬化"])
    
  • 方法2:领域语料重训练BPE模型

附录:快速测试代码

# 一键对比三大模型中文分词
from transformers import AutoTokenizertext = "人工智能的颠覆性创新"# BERT风格
bert_tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
print("BERT:", bert_tokenizer.tokenize(text))  # 单字拆分# DeepSeek风格
ds_tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/deepseek-llm")
print("DeepSeek:", ds_tokenizer.tokenize(text))  # 子词混合# 词级风格(需安装Jieba)
import jieba
print("Jieba词级:", jieba.lcut(text))
http://www.dtcms.com/wzjs/813790.html

相关文章:

  • 唐河微网站建设seo工程师招聘
  • 涉县住房与城乡建设厅网站郴州信息港
  • 金坛常州做网站网站修改
  • 下载模板后怎么建设网站精准引流获客软件
  • 企业网站报价表罗湖商城网站建设多少钱
  • 视频网站后台功能wordpress wp_parse_args()
  • 做装修网站价格马大姐网站建设目的
  • 网站宣传平台开淘宝的店铺网站怎么做
  • 玉田建设局网站河源市连平县建设局网站
  • 建设网站商城需要多少费用网站建设与维护教学课件
  • 网站商务方案松花江避暑城建设网站
  • 荧光字体制作网站网站建设方案打包
  • 网站页脚模板淘宝关键词优化
  • 做网站看网页效果seo网站诊断方案
  • 如何做网站首页图it外包服务平台
  • 郑州的网站建设公司铁路局招聘正式工4000人
  • 土特产网站模板 织梦网站建设图片logo
  • 摄影网站设计论文wordpress删除文章div
  • 惠州网站优化建设上海100强企业排名
  • 湖南营销网站建设基于php网站建设
  • 巴州区建设局网站做网站还需要兼容ie6吗
  • 网站环境配怎么注册地理位置
  • 企业网站推广效果从哪些方面进行分析微信如何做模板下载网站
  • 可以不花钱做网站吗青海营销型网站建设
  • 如何简述网站建设流程wordpress 找不到版权
  • 福建建设执业管理中心网站东莞市专注网站建设公司
  • 淘客cms建站系统一流的龙岗网站建设
  • 可口可乐公司建设网站的目的是什么意思网站服务器备案
  • 杭州 网站建站网站世界排名怎么做
  • 网站字体大小选择购买主机可以做网站吗