精华内容
下载资源
问答
  • 语言模型实验目的实验内容数据集Example: (每行数据是一段对话,句子间用__eou__分隔)实验环境欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何...

    实验目的

    理解并实践语言模型

    实验内容

    1. 用python 编程实践语言模型(uni-gram 和bi-gram) ,加入平滑技术。
    2. 计算测试集中句子的perplexity,对比uni-gram 和bi-gram 语言模型效果。

    数据集

    Example:

    (每行数据是一段对话,句子间用__eou__分隔)
    How much can I change 100 dollars for ? __eou__ What kind of currency do you
    want ? __eou__ How much will it be in Chinese currency ? __eou__ That’s 680 Yuan .
    __eou__
    What kind of account do you prefer ? Checking account or savings account ?
    __eou__ I would like to open a checking account . __eou__ Ok , please just fill out
    this form and show us your ID card . __eou__ Here you are . __eou__

    实验环境

    1. python 3.7.1
    2. nltk
      • 安装过程:
        1. pip install nltk
        2. 进入python命令行模式
        3. 执行以下命令
          import nltk
          nltk.download()
          
          下载安装所有文件

    实验思路

    train

    1. 对训练集进行预处理
      • 全部转化为小写
      • 去标点
      • 分句(使用bi-gram时,句尾句首词不会组成二元组,保证句子间独立性)
        *在bi-gram中,将词组成二元组,并且储存以wi为前缀的bi-gram的种类数量(例:词表中只存在go to和go back两种组合,则wgo的值为2)
    2. 训练
      • 以词作为基元,对每个分句进行分词,并统计每个基元在整个数据集中出现的频数
      • 加入未登录词,并将频数置为0(注意维护wi为前缀的bi-gram的种类数量)
      • 对数据进行平滑并利用频数计算词的频率,以此代替词的概率(此次实验采用加一平滑法

    test

    1. 计算测试集中每个句子的perplexity
      注:因概率值极小,为了减小误差,将先累乘再取对数的运算转化成先取对数再累加
    2. 对测试集句子的perplexity取平均值

    代码实现

    from nltk.tokenize import word_tokenize
    from nltk import bigrams, FreqDist
    from math import log
    
    # 读取数据 小写 替换符号 分句 
    dataset = open("train_LM.txt", 'r+', encoding='utf-8').read().lower()\
                    .replace(',',' ').replace('.',' ').replace('?',' ').replace('!',' ')\
                    .replace(':',' ').replace(';',' ').replace('<',' ').replace('>',' ').replace('/',' ')\
                    .split("__eou__")
    testset = open("test_LM.txt", 'r+', encoding='utf-8').read().lower()\
                    .replace(',',' ').replace('.',' ').replace('?',' ').replace('!',' ')\
                    .replace(':',' ').replace(';',' ').replace('<',' ').replace('>',' ').replace('/',' ')\
                    .split("__eou__")
    

    一元语法

    train

    unigramsDist = FreqDist()  # uni-gram词频数字典
    for i in dataset:
        sWordFreq = FreqDist(word_tokenize(i))  # 每一句的词频数字典
        for j in sWordFreq:
            if j in unigramsDist:
                unigramsDist[j] += sWordFreq[j]
            else:
                unigramsDist[j] = sWordFreq[j]
    

    test

    # 加入未登录词
    for i in testset:
        word = word_tokenize(i)  # 每一句的词频数字典
        for j in word:
            if j not in unigramsDist:
                unigramsDist[j] = 0
    
    # 频数转化为频率  使用加一平滑法   unigramsDist.B()表示每个词都加一后的增加量
    s = unigramsDist.N() + unigramsDist.B()
    unigramsFreq = FreqDist()
    for i in unigramsDist:
        unigramsFreq[i] = (unigramsDist[i] + 1) / s
    
    ppt = []
    for sentence in testset:
        logprob = 0
        wt = 0
        for word in word_tokenize(sentence):
            if word in unigramsFreq:
                logprob += log(unigramsFreq[word],2)
                wt += 1
        if wt > 0:
            ppt.append([sentence,pow(2,-(logprob/wt))])
    
    temp = 0
    for i in ppt:
        temp += i[1]
    print("一元语法模型的困惑度:", temp/len(ppt))
    
    一元语法模型的困惑度: 885.5469372058856
    

    二元语法

    Train

    w2gram = {}     # 可能存在的以w为开头的2-gram的种类数量
    bigramsDist = FreqDist()
    for sentence in dataset:
        sWordFreq = FreqDist(bigrams(word_tokenize(sentence)))
        for j in sWordFreq:
            if j in bigramsDist:
                bigramsDist[j] += sWordFreq[j]
            else:
                bigramsDist[j] = sWordFreq[j]
                if j[0] in w2gram:
                    w2gram[j[0]] += 1
                else:
                    w2gram[j[0]] = 1
    

    test

    # 加入未登录词
    # 由于将每种未出现的2-gram一一列举会生成vacab size * vocab size大小的bigramsDist,为节省时间和空间,此处只加入test中出现的2-gram
    for sentence in testset:
        word = bigrams(word_tokenize(sentence))
        for j in word:
            if j not in bigramsDist:
                bigramsDist[j] = 0
                
                if j[0] in w2gram:
                    w2gram[j[0]] += 1
                else:
                    w2gram[j[0]] = 1
    
    # 频数转化为频率  使用加一平滑法
    history = {}    # 以w为历史的2-gram的数量和
    for i in bigramsDist:
        if i[0] in history:
            history[i[0]] += bigramsDist[i]
        else:
            history[i[0]] = bigramsDist[i]
    bigramsFreq = FreqDist()
    for i in bigramsDist:
        bigramsFreq[i] = (bigramsDist[i] + 1) / (history[i[0]] + w2gram[i[0]])
    
    ppt = []
    for sentence in testset:
        logprob = 0
        wt = 0
        for word in bigrams(word_tokenize(sentence)):
            if word in bigramsFreq:
                logprob += log(bigramsFreq[word],2)
                wt += 1
        if wt > 0:
            ppt.append([sentence,pow(2,-(logprob/wt))])
    
    temp = 0
    for i in ppt:
        temp += i[1]
    print("二元语法模型的困惑度:", temp/len(ppt))
    
    二元语法模型的困惑度: 68.3362351830629
    

    测试结果

    一元语法模型的困惑度: 885.5469372058856
    二元语法模型的困惑度: 68.3362351830629

    展开全文
  • Caffe模型对比

    2017-08-21 10:23:01
    Caffe模型对比

    Caffe模型训练完成后,在实际生产环境中部署时需要对Caffe模型使用的显存(使用CPU时是内存)及模型分类的时间进行评估,下面是对比结果。测试使用的GPU为NVIDIA TESLA M40。

    Model Evaluation

    展开全文
  • 本文档是将简单模型和复杂模型的效果对比的相关论文做了一个整理。
  • 深度学习 检测模型对比
  • 模型参数详解及对比

    2018-11-16 22:56:22
    模型参数详解及对比
  • 对比十几种软件开发模型 瀑布模型 演化模型 螺旋模型 喷泉模型 快速原型模型 智能模型 混合模型 敏捷开发 极限编程XP
  • 新安江模型和SWAT模型对比应用研究,李晓,李致家,新安江模型是我国第一个完整的流域水文模型,在国内应用多年,效果显著。SWAT模型是美国农业部开发的长时段模拟分布式流域水文模�
  • 数据库领域中主要的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象数据模型等,我们重点讲解了**层次模型、网状模型、关系模型**。 1.1 层次模型 层次数据库系统的典型代表是IBM公司的Information ...
       数据库领域中主要的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象数据模型等,我们重点讲解了**层次模型、网状模型、关系模型**。
    

    1.1 层次模型
    层次数据库系统的典型代表是IBM公司的Information Management System数据库管理系统。层次模型用树形结构来表示各类实体以及实体之间的联系。
    满足下面两个条件的基本层次联系的集合为层次模型:1.有且只有一个结点没有双亲结点,这个结点称为根节点;2.根以外的其它结点有且仅有一个双亲结点。
    在层次模型中,每个结点表示一个记录,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。
    在这里插入图片描述
    1.1.1 层次模型中的数据操纵和完整性约束条件
    数据操纵:查询、插入、删除、更新
    完整性约束条件:
    1.无相应的双亲结点值就不能插入子女结点值,即上图中根节点R1没有双亲结点,则在其下不能插入子女结点;
    2.如果删除双亲结点值,则相应的子女结点值也被同时删除,即在上图中删除R2就同时删掉了R4和R5;
    3.更新操作时,应更新所相应记录,以保持数据的一致性,例如:在以下两个关系中:课程(课程号,课程名,平均成绩),成绩(学号,课程号,成绩),要修改课程关系中的平均成绩,也需要修改成绩关系中的成绩。
    层次模型的一个基本特点是,任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而单独存在。
    1.2 网状模型
    网状数据库系统采用网状模型作为数据的组织方式。典型的代表是DBTG系统。
    在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:
    1.允许一个以上的结点无双亲;2.一个结点可以有多余一个的双亲
    在这里插入图片描述

    在网状模型中,多对多联系的表示方法:将多对多联系直接分解成一对多联系,如:在上图中,R1的关系可拆分为R1–R4,R1–R3。
    1.2.1 数据操纵与完整性约束条件
    网状数据库系统对数据操纵加了一些限制,提供了一定的完整性约束:
    唯一标识记录的数据项的集合
    一个联系中支持双亲记录与子女记录之间的一对多联系
    支持双亲记录和子女记录之间某些约束性条件

    1.3 关系模型
    关系数据库系统采用关系模型作为数据的组织方式,1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型。
    在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
    在这里插入图片描述
    1.3.1 关系模型的数据结构
    关系(Relation):一个关系对应通常所说的一张表。
    元组(Tuple):表中的一行即为一个元组。
    属性(Attrubute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
    码(Key):表中的某个属性组,它可以唯一确定一个元组。
    域(Domain):属性的取值范围。
    分量:元组中的一个属性值。
    关系模式:对关系的描述,如:学生(学号,姓名,年龄,性别,系,年级)
    关系最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表
    3.3.2关系术语与一般表格的术语对比
    在这里插入图片描述
    1.3.3 数据操纵和完整性约束条件
    数据操作是集合操作操作对象和操作结果都是关系,即若干元组的集合。同样也可进行查询、插入、删除、更新操作。
    关系的完整性约束条件:实体完整性、参照完整性、用户定义的完整性
    1.3.4 关系模型与非关系模型的比较
    在这里插入图片描述
    1.4 层次模型、网状模型和关系模型的优缺点
    在这里插入图片描述

    展开全文
  • BIM模型、倾斜摄影模型、3D模型对比

    千次阅读 2020-04-27 21:10:51
    开发工具与关键技术:SuperMap iDesktop 10...BIM模型和属性信息丰富(模型+属性一次性导出) BIM模型精细度非常高(导出时对模型进行优化) BIM软件中分层管理模型(以数据集和图层来管理) BIM与GIS对接的...

    开发工具与关键技术:SuperMap iDesktop 10i

    作者:Mr_恺

    撰写时间:2020.4.25

    • 模型数据与GIS平台的对接:
    1. BIM模型数据与GIS平台的对接:

     

    1. BIM与GIS对接要求
    1. BIM模型和属性信息丰富(模型+属性一次性导出)
    2. BIM模型精细度非常高(导出时对模型进行优化)
    3. BIM软件中分层管理模型(以数据集和图层来管理)

     

     

    1. BIM与GIS对接的方法
    1. 导出交换格式再导入
    2. Revit插件导出
    3. Bentley插件导出
    4. CATIA插件导出
    5. Civil3D插件导出
    6. IFC格式转换工具

        

    1. 注意:SuperMap iDesktop可以直接导入【RVT、3DXML、skp 】格式

     

    2、倾斜摄影模型数据与GIS平台的对接:

     

    3、3Ds Max 对接GIS平台的方法:

    • 模型数据的坐标系
    1. BIM模型数据的坐标系

      1. 设置BIM模型数据的坐标系:

     

    (2)BIM模型坐标校正(• 开始菜单 > 配准 > 新建三维配准)

    (3)BIM模型坐标转换(• 开始菜单 > 投影转换 > 数据集投影转换)

     

    2、倾斜摄影模型数据的坐标系

    (1)确认倾斜模型数据的坐标系(以ENU坐标系为例)

    (2)为倾斜模型数据生成配置文件并设置坐标系

    (3)若多源数据的坐标系不统一,则根据项目需求,对倾斜模型数据进行 投影转换

     

    1. BIM模型数据编辑与属性更新:

    1、编辑模型对象空间信息(三维地理设计菜单 > 模型操作 > 模型编辑 > 平移、旋转)

    2、编辑模型属性信息

    (1)更新列

    (2)追加列

    (3)追加行

    (4)拆分数据集

    2、例子:

    (1)BIM与地形匹配(      这里是表面显示不完美,先提取BIM 3维表面数据(在三维地理设计里截面与投影中的提取边界),然后进行挖洞操作,在重新加载)

    (2)BIM与倾斜模型匹配((在倾斜摄影操作里的镶嵌)进行镶嵌操作)

     

    三、优化

    1、BIM模型性能优化策略

    1. 实例化
    2. 去除重复点
    3. 三角网简化
    4. 子对象简化/删除
    5. 提取外壳
    6. LOD分层缓存
    7. 生成S3M图层缓存:

    • 数据集 > 生成缓存

    • 三维数据菜单 > 批量生成模型缓存

    • 目标场景 > 生成场景缓存

     

    2、倾斜摄影模型数据处理与优化:

    • 效果修补
    1. 裁剪(对倾斜摄影数据进行裁剪,保留区域内/外的数据。)
    2. 镶嵌(倾斜摄影数据镶嵌操作是将选中的倾斜摄影模型图层与指定的镶嵌面进行镶嵌 的操作,镶嵌图层同时支持二、三维面图层。)
    3. 纹理替换(实现对倾斜摄影模型中指定对象的纹理进行替换。该方法可以用于去除多余的 对象或剔除不清楚的对象。)

    例子:

    1. 行道树修补(三维数据 → 模型压平 → 添加三维点 → 三维符号渲染)
    2. 地形修补(TIN地形镶嵌:绘制或导入多边形作为修改区域,调整区域内的高程值。)
    3. 水面效果修补(使用三维水面填充符号进行风格配置。)

    (二)单体化   

      1. 单体化的概念
    1. 倾斜摄影自动化建模输出的是一 个连续的TIN网,GIS平台中不能 单独选中地物。
    2. 能对地物进行单独的选中、赋予 并查询属性、进行空间分析等操 作,是最基本的功能要求。
    3. 所以我们需要对倾斜摄影模型进 行拆分——即单体化处理
      1. 单体化技术方案
    1. 切割单体化
    2. ID单体化
    3. 动态单体化
    4. 注意(在WebGL客户端和移动端开发中,均使用ID单体化)
      1. 基于单体化的GIS应用
    1. 图查属性
    2. 属性查图
    3. 缓冲区查询
    4. 制作专题图
    5. 房产分层分户数据

    (三)优化

    1. 合并根节点

    • 相邻四个区域的根节点合并为一个新的节点,即向上抽稀生成一层更为粗糙的LOD层级。

    • 每合并一次,模型根节点数量减少约为原始数量的1/4。

    • 支持多线程处理,用户可自定义线程数,提升处理效率。

    2、纹理压缩

    • 对原始OSGB数据进行批量压缩

     – 数据更小、加载数据更快捷

     – 占用显存更少,可加载更多数据

     – 支持iServer发布,三维客户端浏览

    3、生成S3M

    • 对原始OSGB格式的倾斜摄影模型数据进行纹理压缩、合并根节点、单体化等系列操作,并且将 *.scp 文件索引的 *.osgb 数据转换为对应的 *.s3mb 数据。

    (S3M全称为 Spatial 3D Model,适用在 WebGL客户端进行加载,能提升数据的浏览效率。)

    4、倾斜摄影数据分布式处理方案

     

    3、3Ds max模型在GIS中的性能优化

    (一)如何提前避免人工模型性能出现问题?

    (1)在模型制作时,注意建模规范与技巧

    (2)生成3维切片缓存(S3M),进行优化

    (3)定位“肇事”数据,进行数据检查

    (4)在配置场景时,进行性能优化

     

    (二)在性能出现问题时,如何定位“肇事”数据

    1. 打开场景,显示帧率
    2. 逐个图层显示,隐藏,根据帧率变化找出瓶颈
    3. 针对性处理,并在配置场景时,进行性能优化
    展开全文
  • 通过放散模型和实验结果的对比,表明渗透模型中的新解吸式与实验结果的拟合度最高;然后绘制了4种煤样在不同初始瓦斯压力下新解吸式和实测结果的对比曲线,发现两者在各种条件下都比较吻合。因此,新解吸式可较准确地...
  • 最近有朋友在知识星球上提问W和H模型的区别,现在就总结一下常见的三种测试模型。 V模型、W模型、H模型 测试模型的概念 随着测试过程的管理和发展,测试人员通过大量的实践,从而总结出了不少测试模型,如常见的V...
  • 软件开发模型对比

    千次阅读 热门讨论 2016-10-16 20:13:35
    软件开发模型也称为软件过程。它是软件开发全部过程、活动和任务的结构框架。常见的软件开发模型有瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型等。
  • 基于模型:基于统计模型估算效果,对比和均值
  • 基于自回归模型与神经网络模型的车流量预测对比.pdf
  • 主要对去雾模型的红外图像对比度增强,进行了讲述,感兴趣的小伙伴可以看看
  • 本文将对比分析DDD分层架构、整洁架构、六边形架构。 整洁架构 又名“洋葱架构”(看图就懂),体现了分层思想。 同心圆代表应用软件的不同部分,由内到外依次是 领域模型 领域服务 应用服务 容易变化的内容 比如...
  • UTXO 和 Account 模型对比

    万次阅读 2019-03-29 09:45:31
    Bitcoin 采用的是 UTXO 模型,Ethereum 采用的 Account 模型,同样 CITA 也采用了 Account 模型。 Bitcoin 的设计初衷是点对点的电子现金系统,在比特币中,每个交易消耗之前交易生成的 UTXO 然后生成新的 U...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 325,439
精华内容 130,175
关键字:

对比模型