How NOT To Evaluate Your Dialogue System An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation
如何评价对话生成的质量而不使用人工标注是一个还未解决的问题。这篇文章将证明现在已有的这些评测指标和Twitter domain的人工评测质量只有一点点的相关性,而在Ubuntu domain上则是毫不相关。这些评测值通常来自于机器翻译、文本摘要,比如BLEU、METEOR和ROUGE。这些指标都假设了合法的回复都有明显特殊的词是和ground truth的回复有重复的。这是一个在对话领域中相当强的假设。实际上,由于回复的多样性,很多reasonable的回复都没有和ground truth有一样的词或者是有相同的语义。
Ritter (2011)表示他们的模型在BLEU和人工评测上都比Baseline的retrieval model要好。Sordoni (2015) 从语料库中收集了15个ground truth的回复,来对他们的模型进行BLEU的计算。Jiwei Li (2015) 则是用了单个的ground truth回复。 Galley(2015b)对BLEU进行的修改,形成了deltaBLEU,他考虑了将多个人工评测的ground truth的回复。但在现实中是很难获得人工评测 ...
Lua
由于lua的编译速度相当快,而且这种迭代编译的过程仅仅在程序加载的时候进行一次,故而可以带来性能的提高;一些在系统初始化可以决定的参数(比如从配置文件中读出来的数据直接编译为常量置入程序中。
1234567891011121314151617local select = selectlocal setmetatable = setmetatablelocal getfenv = getfenvlocal setfenc = setfenvlocal loadstring = loadstringlocal type = typelocal tostring = tostringlocal next = nextlocal unpack = unpacklocal assert = assertlocal string = stringlocal table = tablelocal io = iolocal function (...) return select("#", ...), select(1, ...) end
Lua的upvalue和闭包Lua函数可 ...
xLua热更新2之Lua调用C#
思考并回答以下问题:1.如何创建一个空表?
之前学习了C#调用lua,更多的时候,都是调用DoString(“require ‘byfile’”)然后放到lua代码中去处理了,那就意味着会有更多的lua调用C#的情况。
创建C#对象在C#这样new一个对象:
1var newGameObj = new UnityEngine.GameObject();
对应到Lua是这样:
1local newGameObj = CS.UnityEngine.GameObject()
基本上是类似的,区别是:
lua里没有new关键字;
所有C#相关的都放到CS下,包括构造函数,静态成员属性、方法;
如果有多个构造函数呢?xlua支持重载,比如你要调用GameObject的带一个string参数的构造函数,这么写:
1local newGameObj2 = CS.UnityEngine.GameObject('helloworld')
访问C#静态属性,方法** 读静态属性 **
1CS.UnityEngine.Time.deltaTime
** 写静态属性 **
1CS.Unit ...
Lua中的值及其类型
Lua是一门动态类型的语言,这意味着Lua中的变量没有类型,而值才有类型。一个变量可以在不同时刻指向不同类型的值。下面将对Lua中的值及其类型做一些总结。
基本数据类型及其子类型 在lua-5.3.5版本中,有9中基本的数据类型,其定义如下:
1234567891011#define LUA_TNIL 0 // 空类型#define LUA_TBOOLEAN 1 // 布尔类型#define LUA_TLIGHTUSERDATA 2 // 指针类型(void *)#define LUA_TNUMBER 3 // 数字类型#define LUA_TSTRING 4 // 字符串类型#define LUA_TTABLE 5 // 表类型#define LUA_TFUNCTION 6 // 函数类型#define LUA_TUSERDATA 7 // 指针类型(void *)#define LUA_TTHREAD 8 // Lua虚拟机、协程#define LUA_NUMTAGS 9
其中需要说明的是LUA_TLIGHTUSERDATA和LUA_ ...
作业_4 leetcode 399 Evaluate Division
题干Equations are given in the format A / B = k, where A and B are variables represented as strings, and k is a real number (floating point number). Given some queries, return the answers. If the answer does not exist, return -1.0.
Example:Given a / b = 2.0, b / c = 3.0.queries are: a / c = ?, b / a = ?, a / e = ?, a / a = ?, x / x = ? .return [6.0, 0.5, -1.0, 1.0, -1.0 ].
The input is: vector<pair<string, string>> equations, vector<double>& values, vector<pair<string, ...
lua的UTF
大家知道utf8的每个字符并不是定长,所以在处理中文字符截取是会出现很多麻烦,直接substring的话最后一个字符一般都会是乱码,而且长度也不对,lua没有截取UTF8中文字符的相关函数,我们只能自己写一个:
取前200个中文字符
for uchar in string.gfind(string.sub(data.response.docs[i].content,sp), ‘[%z1-127194-244][128-191]*’) do
tab[#tab+1] = uchar
end
for j=1,200,1 do
if tab[j]~=nil then
endp=endp..tab[j]
end
end
通过正则来判断每个UTF8字符的结尾,这个utf8结尾标志就在[%z1-127194-244][128-191]*这个正则里。另:在处理ngx.location.capture去请求包含proxy_pass的子请求是,需要关闭gzip
Lua中and,or的一些特殊用法|qiuzhong's blog
先说and:我们知道and是取与,与就是0 and 0 = 0、0 and 1 = 0、1 and 1 = 1,也就是说有一个为0值就为0,全为1表达式值才为1,所以,当and的第一个操作数为0的时候,我们就没有必要看后面的操作数了,此时表达式的值已经为0,我们就把第一个为0的操作数返回即可;如果第一个操作数为1,那么整个表达式的值就取决于第二个操作数了,第二个为0表达式值为0,第二个为1表达式值为1,所以因为第二个操作数是啥表达式值就是啥,那么我们就把第二个操作数返回就行了。
再说or,也是一个道理:or是取或,或就是0 or 0 = 0、0 or 1 = 1、1 or 1 = 1,也就是说有一个为1值就为1,全为0表达式值才为0,所以,当or的第一个操作数为1的时候,我们就没有必要看后面的操作数了,此时表达式的值已经为1,我们就把第一个为1的操作数返回即可;如果第一个操作数为0,那么整个表达式的值就取决于第二个操作数了,第二个为0表达式值为0,第二个为1表达式值为1,所以因为第二个操作数是啥表达式值就是啥,那么我们就把第二个操作数返回就行了。
<hr/ ...
Programming in Lua(Thrid Edition)笔记
8 Compilation, Execution, and Errors
dofile()实现:1234function (filename) local f = assert(loadfile(filename)) return f()end
可简单一些:123function (filename) assert(loadfile(filename))()end
loadfile()只编译不运行,将编译好的chunk以函数返回,在runtime中执行此函数后才可以使用chunk中的代码,因为Lua中的函数定义是赋值;loadfile()遇到错误时返回错误码代码而不提出错误1234function foo(x) print(x)end
1234f = loadfile("foo.lua") -- 'foo.lua' defines function foo()print(foo) --> nilf() -- defines 'foo'foo("ok") --> ok
load()从字符串 ...
study_lua
#Lua 学习
##知识点1.requeire加载路径
###加载机制对于自定义的模块,模块文件不是放在哪个文件目录都行,函数 require 有它自己的文件路径加载策略,它会尝试从 Lua 文件或 C 程序库中加载模块。require 用于搜索 Lua 文件的路径是存放在全局变量 package.path 中,当 Lua 启动后,会以环境变量 LUA_PATH 的值来初始这个环境变量。如果没有找到该环境变量,则使用一个编译时定义的默认路径来初始化。当然,如果没有 LUA_PATH 这个环境变量,也可以自定义设置,在当前用户根目录下打开 .profile 文件(没有则创建,打开 .bashrc 文件也可以),例如把 “~/lua/“ 路径加入 LUA_PATH 环境变量里:
#LUA_PATHexport LUA_PATH=”~/lua/?.lua;;”文件路径以 “;” 号分隔,最后的 2 个 “;;” 表示新加的路径后面加上原来的默认路径。接着,更新环境变量参数,使之立即生效。source ~/.profile这时假设 package.path 的值是:/Users/dengjo ...
LuaFramework笔记One
Contents
</div>
<h2 id="AppConst-DebugMode"><a href="#AppConst-DebugMode" class="headerlink" title="AppConst.DebugMode"></a>AppConst.DebugMode</h2><ol>
当AppConst.DebugMode=true时1.1 获取的本地持久化资源目录为return Application.dataPath + "/" + AppConst.AssetDir + "/";在LuaFramework框架中这个路径为Assets/StreamingAssets目录,也就是说读取的ab资源是Assets/StreamingAssets下面的ab资源;1.2 不会进行StreamingAssets下面资源的解压释放,但是会执行更新逻辑1.3 lua引擎所初始化的搜 ...