thu-coai / crosswoz Goto Github PK
View Code? Open in Web Editor NEWA Large-Scale Chinese Cross-Domain Task-Oriented Dialogue Dataset
License: Apache License 2.0
A Large-Scale Chinese Cross-Domain Task-Oriented Dialogue Dataset
License: Apache License 2.0
Traceback (most recent call last):
File "convlab2/dst/trade/crosswoz/train.py", line 104, in
if(acc >= avg_best):
TypeError: '>=' not supported between instances of 'list' and 'float'
请问可不可以提供最新版本的代码呢
您好,请问DST任务,我用的https://convlab.blob.core.windows.net/convlab-2/trade_crosswoz_data.zip数据集中的test_dials.json 和 https://convlab.blob.core.windows.net/convlab-2/trade_crosswoz_model.zip提供的模型运行evaluate.py,joint acc最终只有24,比论文中的36.08低很多,然后将test_dials.json中的500个数据分成S,M,M+T,CM,CM+T之后,再每个evaluate,发现S得分80高于论文的71.67,其余都比论文低十几到二十分,(代码逻辑没有改,只把gating_dict = {"ptr":0, "none":1}改成了gating_dict = {"ptr": 0, "dontcare": 1, "none": 2},因为不改这个的话和上面链接提供的模型冲突),所以我想确认一下我思路是不是有问题,或者测试数据用的和论文不一样,谢谢了。
在论文3.4 Dialogue Annotation有提到
If (2, Hotel, name, near (id=1)) is selected, then (Select, Hotel, src_domain, Attraction) is labeled.
请问添加 Select 意图的用意为何? 与 Request 的差异又是在哪?
谢谢
Hi,
I wonder why not add span info for slots, just like MultiWOZ?
Thx a lot!
您好,我在管理员账号下将任务定义文件(您给出的example_goal.json)拷贝至 input 文件夹,点击导入按钮后,弹出提示“成功导入0个任务”,所以导致后续的匹配也因系统端提示没有可以处理的任务,而无法匹配。
请问这是什么原因呢?
hi
if the CrossWoz contain OOV or unseen slot values in testset ?
I can't find more about this information from your paper. if could please provide more about this.
thanks
您好,README里面的这些url,比如:https://convlab.blob.core.windows.net/convlab-2/trade_crosswoz_model.zip,已经打不开了,希望能修复一下~
请问可以提供区分S,M,M+T,CM,CM+T数据的代码吗?想把数据分开单独测试,自己写的算出来和train的介绍不一样,谢谢
Dear,
We find that there is no judgment whether the number of turns exceeds maximum turn. This is a bug?
您好,
通过查看convlab2/dst/trade/crosswoz/utils/utils_multiWOZ_DST.py文件,貌似您还没有完成TRADE在CrossWOZ上的代码,我想请问一下,您在论文中所提及的TRADE在CrossWOZ上的结果是按照数据集中的哪个标注信息来实验的呢,sys_state或sys_state_init?还有,您的数据集中的DST任务的对话轮转否也是和MultiWOZ中[[sys,user],[sys,user],...]这种方式一致的呢?
谢谢
我采用该数据集以及你们提供的代码,跑出来的结果F1值为啥只有0.3125,(delex)F1值0.36
和论文的结果相差太大了,占时还没有想到是那里的问题,是数据集的问题还是代码的问题还是训练方式的问题?
模型训练代码中的注释给出的测试集F1值为0.77,我这边只有0.32;
难道有可能是评价指标计算问题?
When I execute convlab2/policy/mle/crosswoz/evaluate.py
or use ConvLab-2 to build a system to test, an error occurred aflter load from model
Load from model_file param
Load from .../CrossWOZ/convlab2/nlu/jointBERT/crosswoz/output/all_context/pytorch_model.bin
hfl/chinese-bert-wwm-ext
RuntimeError: Error(s) in loading state_dict for JointBERT:
Missing key(s) in state_dict: "bert.embeddings.position_ids".
I have downloaded the NLU model, but how can I solve this problem?
请问tasks.json的格式是什么样的 是否有示例文件 谢谢
导入任务的步骤是:在 Result Files 选项卡下,进入 inputs 目录,上传任务定义文件 tasks.json,再回到管理首页,点导入按钮。
您好,近期在研究 CrossWOZ dataset 時對於 sys_state 等資訊有些疑問想請教:
非常感謝您!
感谢分享非常赞的论文和数据集,论文中提到“We developed a specialized website that allows two workers to converse synchronously and make annotations online.”。
我们也希望标注一些领域数据,并且准备开放给科研社区使用,但是从头开发相关的标注系统有些繁琐。
是否可以将数据标注部分的代码开源或者分享,谢谢 [email protected]。
what do the two numbers following "sys-usr" mean?
"sys-usr": [
96,
97
]
maybe I've missed some explanation inside paper?
按照按照readme文件,pip install -e.安装了环境,打开redis-server,执行resetdb.py,无报错,但是在执行run.py之后显示
Hi, when I try installing using the documented command pip install -e .
, I get the following error message:
ERROR: Command errored out with exit status 1:
command: /opt/anaconda3/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/Users/myhome/CrossWOZ/setup.py'"'"'; __file__='"'"'/Users/myhome/CrossWOZ/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info
cwd: /Users/myhome/CrossWOZ/
Complete output (1 lines):
error in ConvLab-2 setup command: 'extras_require' must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Did I do something wrong?
P.S.The python version I'm using is Python 3.7.6
, and I'm using MAC OS X.
在NLU 过程中 ,输入只有id_embedding, mask_embedding, 没有看到segment_embedding,
请问TRADE DST模型训练有相关文档吗
看了下 convlab2/dst/trade/crosswoz/README.md
, 里面好像还是TRADE的 README
尝试运行了一下 convlab2/dst/trade/crosswoz/create_data_cn.py
, 运行失败, 报 data/crosswoz/test.json
找不到
手动将顶层目录data下的几个zip文件解压到 data/crosswoz
之后,开始能正常运行,但是会报 FileNotFoundError: [Errno 2] No such file or directory: 'data/crosswoz/all_prediction_TRADE.json'
谢谢
Hi,
I wonder whether the data in the repo is the same as those in repo https://github.com/thu-coai/ConvLab-2?
请问nlu的 evaluation是如何融合slot和intent的呢?
按照个人理解,这两项内容都是关于系统收集到的用户当前的状态信息(包括要求的参数和选择),而selectedResults从标注中来看可能是截止目前对话时,用户的选择或者系统最新推荐的选项。从大部分数据来看sys_state_init应该是体现用户的需求和最新选择,而sys_state应该是系统推荐(好像提供的不算)或提供的条件和选择,但仍存在如下疑问:
1)sys_state和sys_state_init两者的差异似乎还是不太清晰,有些时候下两者几乎完全相同(推荐给用户的用户没反对就算用户选择?);而有些时候,_init中似乎又包含了更少的信息(表示虽然推荐,但是用户没有答应?);有时候,系统推荐后,用户已经说“这周边还有其它餐馆吗?”,结果sys_state_init的selectedResults中还有系统推荐的选项。
2)对话轮次之间,状态存在跳跃,比如前一个对话中,还存在selectedResults“鲜鱼口老字号美食街”,后面的对话就消失了(按理状态应该是累积或者不断更新的吧?)
建议是否考虑将两个sys_state的信息合并,就是收集用户截止目前的所有要求和最新选择,系统推荐部分建议单独出来和MultiWOZ类似做成Recommend类型的Dialog_act(目前有部分Recommend,但也存在一些实际的Recommend用Inform了,比如:“为您推荐鲜鱼口老字号美食街,人均消费75元,有您想吃的美食街哦。”这里面就用了Inform)
你好,我想使用 BertNLU + RuleDST + RulePolicy + TemplateNLG 组一个 Agent 做端到端测试,但是在Policy部分的内容出现错误,应该如何正确使用Policy呢,代码如下:
`from convlab2.nlu.jointBERT.crosswoz import BERTNLU
from convlab2.dst.rule.crosswoz import RuleDST
from convlab2.policy.rule.crosswoz import Simulator
from convlab2.nlg.template.crosswoz import TemplateNLG
from convlab2.dialog_agent import PipelineAgent, BiSession
sys_nlu = BERTNLU()
# simple rule DST
sys_dst = RuleDST()
sys_policy = Simulator()
sys_nlg = TemplateNLG(is_user=False)
sys_agent = PipelineAgent(sys_nlu, sys_dst, sys_policy, sys_nlg, name='sys')
print(sys_agent.response('你好,北京大学附近有什么好吃的'))`
你好,首先非常感謝將這麼完整的data開源
知道你們是用自己搭建的convlab裡面的component來跑CrossWoz,但似乎沒有中文問答的demo?
convlab中tutorial的demo非常完整,但好像沒有使用中文來做demo的,paper裡有提到利用中文pre train的model來跑CrossWoz
不知道是否是我漏了哪邊的資訊
再次感謝開源的熱心
请问对话数据集在哪,是否提供crosswoz/data/all_data文件夹里的数据
您好,如標題
我將 NLU DST 個別 train 好以後,做到 policy module 時,按照 readme 文件,先執行 python train.py,最後一次 epoch 顯示 loss_a 在0.035,train 完後畫面如下:
接下來執行 python evalue.py 時,發現 predict_da 均回傳空 list,導致分數很低,
當我回去 trace code 到 class MLEAbstract 時,發現 action = self.vector.action_devectorize(a.numpy()) 本身就是回傳空 list 回來,而上一行中的 a = self.policy.select_action(s_vec.to(device=DEVICE), False).cpu(),再往上 trace 的 policy.policy 的檔案中,policy 基本上沒又東西,回去看 util 的 module 同樣都是 init ,沒辦法回去 trace policy 來自於哪個 object,因此無法檢查 select_action 是否有作用,
想請教這段過程中,我遺漏了哪些步驟,或是哪邊流程錯誤,才可以在 policy evalue.py 的部分成功預測?
謝謝您
for d in self.data[data_key]:
max_sen_len = max(max_sen_len, len(d[0]))
sen_len.append(len(d[0]))
# d = (tokens, tags, intents, da2triples(turn["dialog_act"], context(list of str))
if cut_sen_len > 0:
d[0] = d[0][:cut_sen_len]
d[1] = d[1][:cut_sen_len]
d[4] = [' '.join(s.split()[:cut_sen_len]) for s in d[4]]
数据是key, value的形式,d不是key吗
您好,请问该如何通过标注好的数据来获取句子中每个词(字)的标签呢?
如用户输入:"你好,我想吃美食街,帮我推荐一个人均消费在50-100元的餐馆,谢谢。"
数据集中标注的信息是:
[
['General', 'greet', 'none', 'none'],
['General', 'thank', 'none', 'none'],
['Inform', '餐馆', '人均消费', '50-100元'],
['Inform', '餐馆', '推荐菜', '美食街'],
['Request', '餐馆', '名称', '']
]
需要对“美食街”标注上"B-Inform_餐馆_推荐菜",对"50-100元"标注上"B-Inform_餐馆_人均消费",其余的词(字)标注为O
直接使用字符串匹配吗?但那样可能会出现词(字)相同标签却不同的问题。
不知道是否在标注数据的时候同时记录了该词(字)在句中的位置呢?
请问提供的代码是:
端到端的实现方式?还是NLU、DST、NLG是相对独立的部分?
您好,我看了代码之后,想问一下,系统回复,TemplateNLG().generate() 方法的入参是如何生成的呢?这一块的代码是否存在?
举个例子:
假设用户asr为 "你好,麻烦帮我推荐一个门票免费,评分4分以上的景点。",
NLU的结果假设是:[["General","greet","none","none"],["Inform","景点","门票","免费"],["Inform", "景点", "评分","4分"],["Request","景点","名称",""]],
在进行nlg之前,如何生成: [["Inform","景点","名称","养心殿"]] 结构的数据呢?
是直接调用dst.query方法进行查询和填充吗?希望能帮忙解读一下。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.