精华内容
下载资源
问答
  • 最近收到家里上级的一项任务,把一个图片上的英文翻译成中文,并且做出一个一样的...于是在网上搜了个工具叫秒翻,应该是B站二次元的程序员搞的。 在线版可以直接把中文识别出来、清楚原文、填充译文。实现一键三连。

    最近收到家里上级的一项任务,把一个图片上的英文翻译成中文,并且做出一个一样的表格来,看起来东西不多,也就是一个小卡片:
    在这里插入图片描述
    如果按照正常的流程就是:

    • 1,整个word文件,照猫画虎整个大致表格出来,把小人粘贴上去
    • 2,把表格里的英文全部翻译成中文
    • 3,把word截个图整出来

    显然这种方式太笨了,只有上级才会笨笨的一个一个翻译。既然咱是搞技术的,就得学会偷懒,直接在原图上改他不香么?于是在网上搜了个工具叫秒翻,应该是B站二次元的程序员搞的。
    在这里插入图片描述
    在线版可以直接把中文识别出来、清楚原文、填充译文。实现一键三连。
    在这里插入图片描述
    在这里插入图片描述
    还可以调整文字大小格式。最终下载图片,和原来的一毛一样,毫无篡改痕迹。
    在这里插入图片描述
    这功能适用于任何形式的抠图,比ps快,效果也差不多,关键还能自动翻译。

    展开全文
  • 要是一个两个单词还好,要是发现有 100 个单词不认识,就必须复制粘贴 200 次,如此机械性重复性的工作,应该交给程序来做,这就是我设计下面这个自动翻译工具的初衷。 提升办公效率的法宝 如上图所示,运行程序...
  • 便捷翻译工具-crx插件

    2021-04-04 08:37:04
    2.在类型后自动翻译文本。3.通过快捷方式(Ctrl + Enter)手动翻译文本。4.单击“翻译”按钮翻译文本。5.打开有关源单词的Wiki页面。6.发音文本。7.折叠或展开弹出窗口对话框。8.禁用或启用当前页面的翻译。9.关闭...
  • 搞定了Word文档和PDF文档翻译工具的案例,总觉得还差了一点,仔细想了下,明白了,原来差了一个TXT文本文件翻译工具案例。这个就更简单了——在PDF文档翻译工具基础上加了两个函数,就可以支持TXT文本文件的自动翻译...

    搞定了Word文档和PDF文档翻译工具的案例,总觉得还差了一点,仔细想了下,明白了,原来差了一个TXT文本文件翻译工具案例。这个就更简单了——在PDF文档翻译工具基础上加了两个函数,就可以支持TXT文本文件的自动翻译了——Python程序实现功能就是这么简单。

    事实上在实现PDF文档翻译的程序中就已经应用到了文本文件处理了,调用那个命令行程序pdf2text.exe读取PDF文件内容的时候就是将读取到的文档内容写入一个文本文件,然后再将内容读取出来写入一个Word文档,然后才调用了googletrans这个开源类库来翻译内容,最后写入一个Word文档——完成整个程序逻辑。

    从功能需求角度而言,TXT文本文件翻译工具同样需要4个步骤来实现程序功能:

    (一)读取TXT文本文件内容,然后写入一个Word文档

    程序打开TXT文件,读取内容,然后调用Python开源类库docx的方法写入一个Word文档;

    (二)打开和读取上一步创建的Word文档内容

    程序调用Python开源类库docx来实现;

    (三)翻译读取到的文档内容

    程序调用Python开源类库googletrans来实现——事实上是调用了translate.google.cn网站的翻译功能;

    (四)创建并把翻译好的文档内容写入新文档

    程序调用Python开源类库docx来实现;

    完整代码加群:683380553 获取!

    和PDF文档翻译工具相比,TXT文本文件翻译工具实现更加简单,写了两个函数(txt_to_docx和translate_txt),仔细数了下是这两个函数加调用——20行Python代码——编程加测试用了不到10分钟,这就可以实现文本文件翻译功能了。

    TXT文档翻译工具的程序运行使用截图:

    初始界面:

    YZze6b.jpeg image

    我把那篇用英语介绍RPA技术的文章转存为TXT文本文件,就用这个文件来做测试。

    Introduce_RPA.txt文件:

    7rU7ni.jpeg image

    在 Google文档翻译程序界面打开这个TXT文本文件,然后点击翻译:

    emqeya.jpeg image

    看一下程序运行窗口:

    rINvE3.jpeg image

    最后查看一下新生成的Word文档translated-Introduce_RPA.txt.docx:

    [图片上传中…(image-867139-1553324805838-0)]

    展开全文
  • 亿愿随意翻译是一款十分方便的翻译软件,只要你复制,我就翻译自动识别语言,可以翻译中文、英文、...在任意界面(网页、word文档、PPT文档等等)复制文本,本软件会弹出翻译窗口,把复制(拷贝)的内容自动放入待
  • 大家好,我是早起。本文将给大家分享一个实用的Python办公自动化脚本 「利用Python批量翻译英文Word文档并保留格式」,最终效果甚至比部分收费的软件还要好!先来看看具体的工作内容。...

    大家好,我是早起。

    本文将给大家分享一个实用的Python办公自动化脚本 「利用Python批量翻译英文Word文档并保留格式」,最终效果甚至比部分收费的软件还要好!先来看看具体的工作内容。

    一、需求描述

    手上有大量外文文档(本案例以5份为例,分别命名为 test1.docx test2.docx 以此类推),其中一份如下:

    基本需求「批量将这些文档的内容全部翻译成中文,并转存到新的文件中」,效果如下:

    高级需求:基本需求满足的同时,要求 「保留原文档的格式」,效果如下:

    二、逻辑梳理

    1. 翻译 API

    本需求的核心是翻译,策略是利用网络的翻译 API,这里推荐百度翻译开放平台,不考虑并发数的话可以用标准版,免费使用不限字符量

    百度翻译开放平台:http://api.fanyi.baidu.com/api/trans/product/index

    在使用百度的通用翻译 API 之前需要完成以下工作:

    1. 使用百度账号登录百度翻译开放平台(http://api.fanyi.baidu.com);

    2. 注册成为开发者,获得APPID;

    3. 进行开发者认证(如仅需标准版可跳过);

    4. 开通通用翻译API服务:开通链接

    5. 参考技术文档和Demo编写代码

    完成后在个人页面在即可看到 ID 和密钥,这个很重要!下面给出整理好的通用翻译 API 的 demo,已经对输出做简单修改,代码拿走就能用!

    可以看到,测试内容准确的被翻译出来,注意如果需要多次访问 API,免费版有并发数和时间限制,可以用 time 模块睡眠一秒

    2. 格式修改

    高级需求的难点就是保留格式,简单来说原文档的页面格式和段落格式是什么,翻译后对应的部分就是什么。

    基于上述的逻辑关系,只需要获取原文档的对应内容再赋值给新翻译的文档即可。(暂时只能满足页面设置和段落设置的统一,针对一段中特定词语的格式修改,保证精确性需要基于自然语言处理NLP,本文暂不涉及)

    2.1 页面样式

    页面样式只要包括边距、方向、高度、宽度等等,从原文档中可以看到,采取的是窄边距。但我们无需知道窄边距四个方向应该如何设置,只需要在代码中呈现新旧文档的变量传递即可,具体如下

    2.2 段落样式

    段落样式包括对齐、缩进、间距等等,原文档中采取了段后缩进,标题是居中对齐。这些设置在变量传递中能够很好完成。如果原文档中没有设置的变量值为 None

    2.3 文字块样式修改

    对于字号、加粗、斜体、颜色等样式调整,采取的策略是建立空列表,遍历原文档每一段每一个文字块,获取相应属性并放到各自的列表中,对同一段而言,其包含的文字块属性最多的选项赋值给翻译后文档的对应段落(如同一段全部或大部分的文字是加粗,则翻译后对应段落所有文字块均设置为加粗) 对NLP感兴趣的读者可自行尝试如何高度还原英文文档中某些特定词语的样式修改,并在翻译后的文档中体现出来

    上面的代码不包含对字体的设置,因为没必要把英文的字体传递给中文文档。对中文字体的设置之前的文章有提到过,比较复杂,直接见代码:

    from docx.oxml.ns import qn
    
    run.font.name = '微软雅黑'
    r = run._element.rPr.rFonts
    r.set(qn('w:eastAsia'), '微软雅黑')
    

    3. 整体实现步骤

    现在每个部分操作均以完成,考虑到本例中有多个文档均需要翻译,故全部逻辑如下:

    1. 利用 glob 模块批处理框架可获取某个文件的绝对路径

    2. python-docx 完成 Word 文件实例化后对段落进行解析

    3. 解析出的段落文本交给百度通用翻译 API,解析返回的 Json 格式结果(上面的修改 demo 中已经完成了这一步)并重新写入新的文件

    4. 同个文件全部解析、翻译并写入新文件后保存文件

    三、代码实现

    导入需要的模块,除翻译 demo 中需要的库外还需要 glob 库批量获取文件、python-docx 读取文件、time 模块控制访问并发。为什么要 os 模块见下文:

    import requests
    import random
    import json
    from hashlib import md5
    import time
    from docx import Document
    import glob
    import os
    

    对原 demo 的部分内容进行保留,涉及到 query 参数的代码需要移动到后面的循环中。保留的部分:

    效果如下

    获取到段落文本后,可以将段落文本赋值给 query 参数,调用 API demo 的后续代码。输出结果的同时用 add_paragraph 将结果写入新文档:

    最后保存成新文件,期望命名为 原文件名_translated 的形式,可用 os.path.basename 方法获取并经字符串拼接达到目的:

    wordfile_new.save(path + r'\\' + os.path.basename(file)[:-5] + '_translated.docx')
    

    单个文件操作完成后将读取和创建文件的代码块放到批处理框架内:

    完成了上面的内容后,基本需求就完成了。根据我们梳理的对样式的修改知识,再把样式调整的代码加进来就行了,最终完整代码如下:

    代码运行完毕后得到五个新的翻译后文件

    翻译效果如下,可以看到英文被翻译成中文,并且样式大部分保留!

    至此,所有文档都被成功翻译,当然这是机器翻译的,具体应用时还需要对关键部分进一步人工调整,不过整体来说还是一次成功的Python办公自动化尝试!

    我已经将本文涉及的示例文档上传至GitHub,感兴趣的读者可以在后台回复「自动化」获取地址下载学习!

    -END-

    如果你希望知道如何用Python操作Word,或者查学习更多Python办公自动化案例,可以点击下方图片查看!

    展开全文
  • 它是提供给专业翻译者使用的工具。但它不会自动为你进行翻译。(进行这项工作的软件叫做“机器翻译”,你得去别处找。)OmegaT具有以下特性: 模糊匹配 匹配传播 对多文件项目的并发处理 对多个翻译记忆的并发使用 ...
  • 它的独特之处是在拷贝时可以自动去除那令人烦恼的黑色背景并可以自动修剪图形的空白边缘、自动填充颜色、自动将 DWG 格式文件转变为 WMF 格式,另外 它还能对图形进行缩放、旋转,并能根据自己的需要对不同颜色的...
  • 它可以解决C-SVM分类,工具包还为C-SVM分类提供了模型自动选择工具。本文档将介绍支持向量机工具包的用法。 支持向量机工具包可以从http://www.csie.ntu.edu.tw/~cjlin/libsvm下载。在使用支持向量机工具包之前请先

    本译文还有word(.doc)版在线版。 

     

    支持向量机工具包(libsvm)是简单、高效、易用的支持向量机(SVM)分类与回归软件。它可以解决C-SVM分类,工具包还为C-SVM分类提供了模型自动选择工具。本文档将介绍支持向量机工具包的用法。

     

    支持向量机工具包可以从http://www.csie.ntu.edu.tw/~cjlin/libsvm下载。在使用支持向量机工具包之前请先阅读文件COPYRIGHT(版权协议)。

     

    目录

    =================

    快速入门

    安装和数据格式

    svm-train”的使用

    svm-predict”的使用

    svm-scale”的使用

    实际使用中的技巧

    示例

    预先计算好的内核

    函数库的使用

    Java版本

    生成windows下的二进制文件(二进行文件就是通常所说的exe文件,即可执行文件)

    附加工具:子取样器,参数选择器,数据格式较验器等

    Python接口

    附录

     

    快速入门

    ===========

     

    如果你没有接触过支持向量机,且要处理的数据量并不大,那么请在安装完成之后使用“tools”文件夹下的easy.py。它可以自动完成从数据数值化到参数选择的一切工作。

     

    语法:easy.py 训练文件[测试文件]

     

    更多关于参数选择的信息见文件“tools/README”。

     

    安装和数据格式

    ============================

     

    Unix系统中,键入“make”来生成“svm-train”和“svm-predict”程序。不带参数运行它们,可以查看它们的语法。

    在其它的操作系统中,请参考“Makefile”文件来生成它们(例如,查看本文档中的“生成Windows二进制文件”,或者直接使用已经生成的二进制文件(Windows二进制文件在文件夹“windows”中)。

    训练与测试数据文件的格式如下所示

    <label> <index1>:<value1> <index2>:<value2>…

    .

    .

    .

    每行包含一个实例,并且以字符’/n’结束。对于分类来讲,<label>是整型数据,表示类别(支持多分类)。对于回归来讲,<label>是任意实数(浮点数),表示目标值。one-class SVM并不使用这个参数,所以使用什么数值都可以。除非使用预计算好的内核(稍候章节介绍),否则<index>:<value>是描述属性值的。<index>(索引)是从1开始的整型数据,而<value>(值)是实数(浮点型)。索引必须升序排列。在测试文件中的标签只是用于计算精确度或错误率。如果它们是未知的,那么只要将第一列赋任意数值。

    本包含有一个用于分类的示例数据文件,文件名是“heart_scale”。要验证你的数据格式的正确性,请使用“tools/checkdata.py”工具(详见文件“tools/README”)。

    键入“svm-train heart_scale”,程序会读读入训练数据并生成模型文件“heart_scale.model”。假设你有一个名为“heart_scale.t”的测试集,那么键入“svm-predict heart_scale.t heart_scale.model output”以测试预测精确度。文件“output”中含有预测的分类标签。

    本包中还有一些别的实用程序:

    svm-scale:

           将输入数据数值化的工具。

    svm-toy:

           简单的图形界面工具,它可以展示支持向量机怎样在二维空间(即平面)上将数据分类。你可以在该窗口上面单击以绘制数据点。使用“change”按钮来选择类别123(也就是说,最多支持三类),按“load”按钮可以从文件载入数据,按“save”按钮可以将数据保存到文件,按“run”按钮可以获得一个SVM模型(根据绘制的点集或从文件载入的数据),按“clear”按钮可以清屏。

     

           在该窗口的底部文本框内,你可以输入参数,参数的句法和“svm-train”一样。

     

           注意:“load”和“save”只考虑数据分类而不考虑回归的情况。每个数据点拥有一个标签(颜色,必须是123)和两个属性(横坐标和纵座标),取值区间[0,1]

     

           在相应目录键入“make”来生成这些程序。

     

           如果要生成Qt版本,那么需要有Qt库的支持。    (可以从http://www.trolltech.com下载)

     

           如果要生成GTK+版本,那么需要有GTK+库的支持。(可以从http://www.gtk.org下载)

          

           已编译二的Windows二进行文件在“windows”文件夹中。我们是在32位的机器上使用Visual C++生成的这些二进制文件,所以最大可以缓存是2G

     

    svm-train”的使用

    =================

     

    语法:svm-train [参数表] 训练数据集文件 [模型文件]

    参数:

    -s 支持向量机类型:支持向量机类型集合(默认值0

           0 -- C-SVC

           1 -- nu-SVC

           2 -- one-class SVM

           3 -- epsilon-SVR

           4 -- nu-SVR

    -t 内核类型:内核函数集合(默认值2

           0 -- 线性函数:u'*v

           1 --多项式函数:(gamma*u'*v + coef0)^degree

           2 --径向基函数:exp(-gamma*|u-v|^2)

           3 – sigmoid函数:tanh(gamma*u'*v + coef0)

           4 – 预先计算好的内核函数 (训练文件中的内核数值)

    -d degree值:设定内核函数的degree值(默认值3

    -g gamma值:设定内核函数的gamma值(默认值1/k

    -r coef0值:设定内核函数的coef0值(默认值0

    -c cost值:设定C-SVCepsilon-SVR、和nu-SVR中的参数C的值(默认值1

    -n nu值:设定nu-SVCone-class SVM、和nu-SVR中的参数nu的值(默认值0.5

    -p epsilon值:设定epsilon-SVR中损失函数的epsilon值(默认值0.1

    -m 缓存大小:设定缓存内存大小,以MB为单位(默认值100

    -e epsilon值:设定结束条件(默认值0.001

    -h 压缩:是否启用启发式压缩,值为01(默认1

    -b 概率期望:在训练SVCSVR模型时是否启用概率期望,值为01(默认值0

    -wi 权重:设定C-SVC中类i的参数C为权重*C(默认值1

    -v nn重交叉验证模式

     

    -g参数的k值表示输入数据的属性数量。

     

    参数-v随机切分数据为n个部分,然后计算它们之间交叉验证的精确度/平均方差。

     

    输出内容的含义参见libsvm常见问题(FAQ)。

     

    svm-predict”的使用

    ===================

     

    语法:svm-predict [参数表] 测试文件 模型文件 输出文件

    参数:

    -b 概率期望:是否启用概率期望,值为01(默认值0);one-class SVM只支持0

     

    参数中的模型文件是使用svm-train生成的模型文件。

    测试文件是你想测试的数据文件。

    svm-predict会把结果输出到输出文件。

     

    svm-scale”的使用

    =================

     

    语法:svm-scale [参数表] 数据文件

    参数:

    -l 下限:x坐标数值化最低下限(默认值-1

    -u 上限:x坐标数值化最高上限(默认值+1

    -y y_lower y_uppery坐标数值化区间(默认值:不使用y坐标值)

    -s 保存文件名:将数值化参数保存到指定文件。

    -r 恢复文件名:从指定文件重新得到数值化的参数。

     

    参见本文档中“示例”部分的例子

     

    实际使用中的技巧

    =====================

     

    数值化你的数据。例如,将所有的属性用区间[0,1][-1,+1]中的数值表示。

    *使用C-SVC模型时,可以考虑选用“tools”文件夹中的模型选择工具。

    *nu-SVC/one-class-SVM/nu-SVR模型中的nu参数接近训练错误和支持向量的商。

    *如果分类的目标数据是不均衡的(比如正数很多,且很少有负数),试着通过-wi参数调整惩罚因子C(参见下面的示例)。

    *处理较大规模问题时设定较大的缓存大小(也就是扩大参数-m的数值)。

     

    示例

    ========

     

    > svm-scale -l -1 -u 1 -s range train > train.scale

    > svm-scale -r range test > test.scale

     

    将训练数据中的每个属性都在区间[-1,1]中数值化。先将数据化因子保存到文件range中,然后再用于数值化测试数据。

     

    > svm-train -s 0 -c 5 -t 2 -g 0.5 -e 0.1 data_file

     

    使用RBF内核函数exp(-0.5|u-v|^2)C=10,并且设定结束条件为0.1来训练分类器

     

    > svm-train -s 3 -p 0.1 -t 0 data_file

     

    使用线性内核函数u'v,设定损失方程中epsilon=0.1解决支持向量机回归问题。

     

    > svm-train -c 10 -w1 1 -w-1 5 data_file

     

    对类1使用惩罚因子10=1*10,而对类-1使用惩罚因子50=5*50来训练分类器。

     

    > svm-train -s 0 -c 100 -g 0.1 -v 5 data_file

     

    使用参数C=100gamma=0.1对分类器进行五次交叉验证。

     

    > svm-train -s 0 -b 1 data_file

    > svm-predict -b 1 test_file data_file.model output_file

     

    根据概率信息和有概率期望的预测数据获得一个模型。

     

    预先计算好的内核

    ===================

     

    用户可以预告计算好核心数值并将它们作为训练和测试文件输入。这样支持向量机工具包就不需要原始的训练/测试数据集了。

     

    假设有L个训练实例,x1,…,xL。设K(x,y)为实例xy的内核值。则输入数据格式为:

     

    xi的新训练实例:

     

    <label>0:I 1:K(xi,x1)…L:K(xi,xL)

     

    x的新测试实例:

     

    <label>0:?1:K(x,x1)…L:K(x,xL)

     

    也就是说,在训练文件中,第一列必须是xi的“ID”。在测试实例中,?表示任意值。

     

    包括“±0”在内的所有内核数值都必须明确给定。训练/测试文件的任何排列或随机子集都是合法的(见下面的例子)。

     

    注意:与支持向量机工具包的早期发行版本中工具的预先计算好核心集的格式略有不同

     

    示例:

     

           假设原始训练数据有三个实例,每个实例有四种属性,而测试数据有一个实例:

     

           15  1:1 2:1 3:1 4:1

           45      2:3     4:3

           25          3:1

     

           15  1:1     3:1

     

           如果使用线性核心,那么我们会得到如下的训练与测试集合:

     

           15  0:1 1:4 2:6  3:1

           45  0:2 1:6 2:18 3:0

           25  0:3 1:1 2:0  3:1

     

           15  0:? 1:2 2:0  3:1

     

           ? 表示任意值

     

           以上训练文件中的任意子集也都是合法的。例如:

           25  0:3 1:1 2:0  3:1

           45  0:2 1:6 2:18 3:0

     

           意味着核心矩阵是

                  [K(2,2) K(2,3)] = [18 0]

                  [K(3,2) K(3,3)] = [0  1]

     

    函数库的使用

    =============

     

    这些函数和结构都在头文件“svm.h”中有声名。你需要在你的C/C++源文件中添加#include “svm.h”语句,在连接时需要将你的程序与svm.cpp连接。具体使用方法可以参考“svm-train.c”和“svm-predict.c”的使用示例。在文件svm.h中使用LIBSVM_VERSION定义了版本号,以便读者查阅。

     

    在对测试数据进行分类之前,需要先使用训练数据建立一个支持向量模型。模型可以以文件的形式存储以备以后使用。一旦建立好了支持向量机模型,就可以用它来对新的数据进行分类了。

     

    -函数:struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param);

     

    这个函数根据给定的参数和训练数据构建并返回一个支持向量机模型。

     

    结构体svm_problem将问题形式化:

          

           struct svm_problem

           {

                  int l;

                  double *y;

                  struct svm_node **x;

           };

     

    其中“l”表示训练数据的实例数,而“y”是一个数组,用于存放它们的目标值。(类型值用整型数据,回归值用实数)“x”是一个数组指针,每一个指针指向一个稀疏的训练向量(即一个svm_node数组)。

     

    例如,如果我们有如下的训练数据:

     

    LABEL   ATTR1    ATTR2    ATTR3    ATTR4    ATTR5

        ----- ----- ----- ----- ----- -----

          1           0    0.1        0.2        0    0

          2           0    0.1        0.3      -1.2         0

          1           0.4        0    0    0    0

          2           0    0.1        0    1.4        0.5

          3         -0.1       -0.2         0.1        1.1        0.1

     

    于是svm_problem的构成如下:

     

    l = 5

     

    y -> 1 2 1 2 3

     

    x -> [ ] -> (2,0.1) (3,0.2) (-1,?)

            [ ] -> (2,0.1) (3,0.3) (4,-1.2) (-1,?)

            [ ] -> (1,0.4) (-1,?)

            [ ] -> (2,0.1) (4,1.4) (5,0.5) (-1,?)

            [ ] -> (1,-0.1) (2,-0.2) (3,0.1) (4,1.1) (5,0.1) (-1,?)

     

    其中(索引,值)存储在结构“svm_node”中:

     

           struct svm_node

           {

                  int index;

                  double value;

           };

     

    当索引为-1时表示已经到达向量的末端。注意索引必须“升序”排列。

     

    结构体svm_parameter描述了一个支持向量机的参数:

     

           struct svm_parameter

           {

                  int svm_type;

                  int kernel_type;

                  int degree;      /* for poly */

                  double gamma;      /* for poly/rbf/sigmoid */

                  double coef0;  /* for poly/sigmoid */

     

                  /* these are for training only */

                  double cache_size; /* in MB */

                  double eps;     /* stopping criteria */

                  double C;       /* for C_SVC, EPSILON_SVR, and NU_SVR */

                  int nr_weight;        /* for C_SVC */

                  int *weight_label;   /* for C_SVC */

                  double* weight;            /* for C_SVC */

                  double nu;      /* for NU_SVC, ONE_CLASS, and NU_SVR */

                  double p; /* for EPSILON_SVR */

                  int shrinking;  /* use the shrinking heuristics */

                  int probability; /* do probability estimates */

           };

     

    svm_type可以是C_SVCNU_SVCONE_CLASSEPSILON_SVRNU_SVR其中的一种。

     

    C_SVC:         C-SVM 分类

    NU_SVC:              nu-SVM 分类

    ONE_CLASS:              one-class-SVM

    EPSILON_SVR:    epsilon-SVM回归

    NU_SVR:              nu-SVM回归

     

    kernel_type可以是LINEARPOLYRBFSIGMOID其中一种。

     

    LINEAR:       u'*v

    POLY:     (gamma*u'*v + coef0)^degree

    RBF:       exp(-gamma*|u-v|^2)

    SIGMOID:     tanh(gamma*u'*v + coef0)

    PRECOMPUTED:训练集文件中的核心值

     

    cache_size是核心缓存的大小,单位为MBC是违背约束成本(惩罚值)。eps是结束条件。(一般地,我们在nu-SVC模型中使用0.00001,在其它模型中使用0.001)。nunu-SVMnu-SVRone-class-SVM中的一个参数。p epsilon-SVM回归中对epsilon不敏感函数的epsilon值。shirnking = 1表示使用压缩,否则 = 0 probability = 1表示得到带概率信息的模型,否则 = 0

     

    nr_weightweight_labelweight(权重)用于改变某些类的惩罚因子(如果一个类的权重不变,则将权重值设定为1)这在使用不均衡输入数据或使用不均匀错误成本训练分类器时尤其有用。

     

    nr_weight是数组weight_labelweight中的元素个数。每个weight[i]对应一个weight_label[i],表示类weight_label[i]的惩罚是由因子weight[i]确定的。

       

    如果不想改变任何类的惩罚因子,那么只需要将nr_weight设定为0

     

    *注意*因为svm_model含有指向svm_problem的指针,如果仍要使用由svm_train()产生的svm_model,那么就不要释放svm_problem的内存。

     

    *注意*为了避免错误的参数,在调用svm_train()之前应该先调用svm_check_parameter()

     

    -函数:double svm_predict(const struct svm_model *model,

    const struct svm_node *x);

     

    在给定模型的前提下,这个函数可以用来对测试向量x进行分类或回归。

     

    分类模型返回的是x的预测类。

    回归模型返回使用该模型计算所得的x函数值。one-class模型返回+1-1

     

    -函数:void svm_cross_validation(const struct svm_problem *prob,

           const struct svm_parameter *param, int nr_fold, double *target);

     

    这个函数用于交叉验证。数据会分成nr_fold个部分。在给定的参数下,顺序地对每一部分数据用其余部分数据训练成的模型进行验证。在验证过程中,预测标签(所有prob的实例)存放到一个名为target(目标)的数组。

     

    svm_prob的格式与svm_train()的相同。

     

    -函数:int svm_get_svm_type(const struct svm_model *model);

     

    这个函数用于确定模型的svm_type。可能的svm_type值已在svm.h中定义。

     

    -函数:int svm_get_nr_class(const svm_model *model);

     

    对于分类模型,本函数用于得到类的数量。回归或one-class模型的返回值是2

     

    -函数:void svm_get_labels(const svm_model *model, int* label)

       

    对于分类模型,这个函数输出名称标签到一个名为label的数组。对于回归或one-class模型,label的值保护不变。

     

    -函数:double svm_get_svr_probability(const struct svm_model *model);

     

    对于带有概率信息的回归模型,此函数将输出一个值sigma>0。对于测试数据,我们考虑概率模型:目标值 = 预测值 + zz:拉普拉斯分布e^(-|z|/sigma)/(2sigma)

     

    如果不是svr模型,或者不含有需要的信息,则返回0

     

    -函数:void svm_predict_values(const svm_model *model,

                                    const svm_node *x, double* dec_values)

     

    在给定模型的前提下,这个函数可以用来给出测试向量x的决策值。

     

    对于有nr_class个类的分类模型,这个函数给出nr_class*(nr_class-1)/2个决策值,并存到数组dec_values中,其中nr_class可以通过函数svm_get_nr_class得到。序列是label[0] vs. label[1], …, label[0] vs. label[nr_class – 1], label[1] vs. label[2], …, label[nr_class-2] vs. label[nar_class-1], 其中label可以通过函数svm_get_lables得到。

     

    回归模型中,label[0]表示使用该模型计算所得的x函数值。one-class模型中,label[0]+1-1

     

    -函数:double svm_predict_probability(const struct svm_model *model,

               const struct svm_node *x, double* prob_estimates);

       

    在给定带概率信息的模型的前提下,这个函数可以用来对测试向量x进行分类或回归。

     

    对于带有概率信息的分类模型,这个函数会把nr_class概率期望输出到数组prob_estimates中。 nr_class可以通过函数svm_get_nr_class得到。返回值是概率值最高的类。对于回归或one-class支持向量机,数组prob_estimates保持不变,而返回值与svm_predict的返回值相同。

     

    -函数:const char *svm_check_parameter(const struct svm_problem *prob,

    const struct svm_parameter *param);

     

    本函数检验对于当前问题,参数是否合法。在调用svm_train()svm_cross_validation()之前应该调用此函数。如果参数合法,则返回NULL,如果不合法,则返回错误信息。

     

    -函数:int svm_check_probability_model(const struct svm_model *model);

     

    此函数用于判断当前模型是否含有进行概率期望运算所需要的信息。如果含有则返回+1。否则返回0。在调用sv svm_get_svr_probabilitysvm_predict_probability之前应该调用此函数。

     

    -函数:int svm_save_model(const char *model_file_name,

                                const struct svm_model *model);

     

    此函数用于将训练好的模型保存到文件中,如果保存成功则返回0,如果发生错误则返回-1

     

    -函数:struct svm_model *svm_load_model(const char *model_file_name);

     

    此函数从文件中读取模型并返回指向该模型的指针,如果读取失败则回返空指针。

     

    -函数:void svm_destroy_model(struct svm_model *model);

     

    此函数用于释放指定模型的内存。

     

    -函数:void svm_destroy_param(struct svm_parameter *param);

     

    此函数用于释放指定参数集的内存。

     

    Java版本

    ============

     

    java预编译类包“libsvm.jar”以及源代码文件都在文件夹java中。要运行程序,使用下列命令:

    java -classpath libsvm.jar svm_train <参数表>

    java -classpath libsvm.jar svm_predict <参数表>

    java -classpath libsvm.jar svm_toy <参数表>

    java -classpath libsvm.jar svm_scale <参数表>

     

    注意:程序运行需要java 1.55.0)支持。

     

    需要把java运行时库(如classes.zip)添加到类路径。

    需要将java最大堆容量调大。

     

    类库的使用方法与C版本类似。可用的方程如下:

     

    public class svm {

           public static final int LIBSVM_VERSION=288;

           public static svm_model svm_train(svm_problem prob, svm_parameter param);

           public static void svm_cross_validation(svm_problem prob, svm_parameter param, int nr_fold, double[] target);

           public static int svm_get_svm_type(svm_model model);

           public static int svm_get_nr_class(svm_model model);

           public static void svm_get_labels(svm_model model, int[] label);

           public static double svm_get_svr_probability(svm_model model);

           public static void svm_predict_values(svm_model model, svm_node[] x, double[] dec_values);

           public static double svm_predict(svm_model model, svm_node[] x);

           public static double svm_predict_probability(svm_model model, svm_node[] x, double[] prob_estimates);

           public static void svm_save_model(String model_file_name, svm_model model) throws IOException

           public static svm_model svm_load_model(String model_file_name) throws IOException

           public static String svm_check_parameter(svm_problem prob, svm_parameter param);

           public static int svm_check_probability_model(svm_model model);

    }

     

    libsvm”包中含有该类库。

    注意在java版本中,svm_node[]不以索引值=-1的结点结束。

     

     

    生成windows下的二进制文件(二进行文件就是通常所说的exe文件,即可执行文件)

    =========================

     

    windows二进制文件在文件夹“windows”中。可以使用visual C++制成这些文件,步骤如下:

     

    1. 打开一个DOS命令窗(或者visual studio命令提示)并到libsvm文件夹中。如果尚未设置VC++的环境变量,那么可以键入“C:/Program Files/Microsoft Visual Studio 8.0/VC/bin/vcvars32.bat”。

     

    可以根据VC++的版本及安装目录改变上面的目录。

     

    2. 键入

     

    nmake -f Makefile.win clean all

     

    3. (可选)要生成python接口,下载并安装Python

    打开Makefile.win文件,将PYTHON_INCPYTHON_LIB设置为python安装目录。键入

    nmake -f Makefile.win python

    然后将windows/python/svmc.pyd拷贝到python文件夹下。

     

    还可以在Visual C++ 环境下生成这些文件。详情请见支持向量机工具包常见问题(FAQ)。

     

    附加工具:子取样器,参数选择器,数据格式较验器等

    ============================================================================

     

    参见tools文件夹下的README文件。

     

    Python接口

    ================

     

    参见python文件夹下的README文件。

     

    附录

    ======================

     

    如果您认为支持向量机工具包对您有帮助,那么请标明引自Chih-Chung ChangChih-Jen Lin的支持向量机工具包:支持向量机的一个类库,2001年。

    软件可以从http://www.csie.ntu.edu.tw/~cjlin/libsvm下载。

     

    支持向量机工具包的使用文档可以从http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf下载。

     

    如果您有任何问题或建议,请发电子邮件到cjlin@csie.ntu.edu.tw

     

    致谢:

    这项工作得到了台湾行政院国家科学委员会的NSC 89-2213-E-002-013许可的部分支持。

    作者在些向于开发团队成员及参与了建设性讨论与评论的广大用户致以诚挚的谢意!开发团队及建设性建议提出者列于:http://www.csie.ntu.edu.tw/~cjlin/libsvm/acknowledgements

     

     

    展开全文
  • 文字复制粘贴工具

    2019-04-22 22:59:05
    4、程序托盘图标可以设置快捷键,加载动画,截图识别后自动翻译、截图文件保存位置。 5、文本发送功能使用如下: ①点击文本需要发送的文本框,例如word、记事本、网页的文本框等。 ②点击发送按钮,可以将软件内...
  • 黑帽SEO工具的优势

    2013-11-06 15:05:37
    Spin格式- 首先我先要介绍一下spin格式,什么叫spin,翻译过来是“旋转”,它的格式是这样的{word1|word2|word3|word4|…}(比如{漂亮|美丽|好看|靓}),这样的格式有什么用,就是在你使用这段字符的时候,它会自动在...
  • 自用转换工具集 放置一些转换用的辅助工具,用于重复重复劳动。... (Nessus)Nessus CSV自动翻译 下载地址 https://static.chenqlz.top/converter/{xxx}.exe 注:文件名区分大小写, {xxx}和上方括号内的程序名一致。
  • 对齐原文和译文、复制多个窗口的文字、分开中(法)英文、中英文字符之间添加空格、Word文档内连接断行、高亮显示数字、清除DejaVu标签、Word原文和译文段段/整页对照、提取高频词(术语)、自动调用谷歌和有道翻译...
  • 它是提供给专业翻译人员使用的工具。但它不会自动为你进行翻译。(进行这项工作的软件叫做“机器翻译”,你得去别处找。)OmegaT具有以下特性: 模糊匹配 匹配传播 对多文件项目的并发处理 对多个翻译记忆的并发...
  • translate -- 用谷歌提供的临时翻译文本创建翻译文档 编辑级别 splitlines - 解析段落和分割线以防止行太长 id_sentences - 使用 nlp 将句子包装在一个id 像 par_id:sent# id_words -用 id包裹每个单词,如 par_id:...
  • doctohelp帮助转换工具

    2009-09-04 17:36:39
    界面预览: 无 软件类别: 国产软件 / 转换翻译 软件语言: 简体中文 应用平台: NT/Win2000/XP/2003/Vista 软件性质: 共享(收费)软件 软件介绍: doc2help能把word文档直接转换专业的帮助文档。用户只需要简单...
  • 4.在托盘中可以设置快捷键,加载动画,截图识别后自动翻译、截图文件保存位置。 5.文本发送功能使用如下: ①点击文本需要发送的文本框,例如word、记事本、网页的文本框等。 ②点击发送按钮,可以将软件内的文本...
  • Freemarker官网,英文,可以用谷歌浏览器的自动翻译,英文水平高的忽略这句。。 简单来说:FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker被设计用来生成HTMLWeb页面,...
  • 《金山词霸2009 牛津版》安装完成后,会自动在您机器上 Microsoft Office Word、Microsoft Office Excel、Microsoft Office PowerPoint、Microsoft Office Outlook、Adobe(Acrobat) Reader 等软件中作为插件工具加载...
  • 由此,计算机语言的翻译变成了一项普通的任务—在这之前YACC/LEX显得过于学院派,而以LL(k)为基础的ANTLR虽然在效率上还略有不足,但是经过近些年来的升级修改,使得ANTLR足以应付现存的绝大多数应用。感谢Terence...
  • 超级玛丽游戏GUL 设计软件源码+WORD毕业论文文档。 超级玛丽小游戏的JAVA程序,进入游戏后首先按空格键开始,利用方向键来控制的马里奥的移动,同时检测马里奥与场景中的障碍物和敌人的碰撞,并判断马里奥的可移动...
  • 2.超级写字板:修改处理大量文件时很方便,不必每次都启动WORD软件。 3.超级记事本:功能强大的记事本,随手记录每天的写作灵感,不会丢失。 4.文件夹报表:快速查看一个文件夹内究竟有多少层子目录、子文件(连...
  • 如果你是一个翻译爱好者,来试试这个软件,一定会让你爱不释手,在下一版中将增加的随时随地注解功能,你可以在任何地方,增加注解,来解释你对某一句或是某一个单词的看法,你可以把自己译过的文章在网上发布,共享给网友,...
  • 笔者在制作英语PPT的时候 ,由于贪图方便 ,直接将中文翻译成英文,从有道翻译直接Crtl+V粘贴了,出现了如下情况,即英语单词在到达文本框末尾的时候,出现了自动换行的现象,导致英语单词不连续,看着让人很难受。...

空空如也

空空如也

1 2 3 4 5 6
收藏数 120
精华内容 48
关键字:

word自动翻译工具