整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

使用 DITA 内容为 Google Dialogflow 聊天机器人或百度UNIT 创建知识库


近因为订阅电子期刊产生偏差,我向位于美国的 SCRIBD 出版商申请了退回扣除的信用卡款项。整个过程虽然遇到一点点状况,如多次登录账户,基本上其 HELP CENTER 知识库 的聊天机器人全权处理,最终完成了信用卡的退款。

因为2018年在浙江绍兴为日本山形英技公司担任 AI 聊天机器人研发,突然发现,今天的 AI 使用体验突飞猛进且越发贴近生活。本文与您分享用 DITA 为 Google 聊天机器人提供知识的技巧。

聊天机器人是一种计算机程序,它通过语音命令或文本聊天或两者兼而有之来模拟人类对话。Chatbot(chatterbot 的缩写)是一种人工智能 (AI) 功能,可以通过任何主要的消息传递应用程序嵌入和使用。聊天机器人是自动化程序有助于为客户增加便利。它们可以像人类一样与客户互动,而且互动成本几乎可以忽略不计。

假设您有一个简单的 DITA 主题内容,其中包含以形式放置在表中的成对问题和答案:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd"> 
<topic  id = "frequently_asked_questions" > 
    <title>常见问题</title> 
    <body> 
        <p> 
            <table  frame = "all"  rowsep = "1"  colsep = "1"  id = "table_bkf_4dl_vsb" > 
                <tgroup  cols = "2" > 
                    <colspec  colname = "c1"  colnum = "1"  colwidth = "1*" />
                    <colspec  colname = "c2"  colnum = "2"  colwidth = "1*" /> 
                    <tbody> 
                        <row> 
                            <entry> 
                                <p>什么是 Oxygen XML 编辑器?</p> 
                                <p>什么是Oxygen XML?</p> 
                            </entry> 
                            <entry> 
                                <p> Oxygen XML Editor 是一个很棒的工具。</p> 
                            </entry> 
                        </row> 
                        <row> 
                            <entry>如何学习 DITA?</entry> 
                            <entry>您可以阅读“Oxygen”用户指南和 Oxygen XML 博客。<
                        
                    
                
            
        
    </body> 
</topic>
            
        

我们可以使用以下 XSLT 样式表从 XML 内容中将训练数据提取出来 CSV 文件:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet  xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs = "http:// /www.w3.org/2001/XMLSchema"  exclude-result-prefixes = "xs"  version = "2.0"  xmlns:oxy = "abc" > 
    <xsl:output  method = "text" /> 
    <xsl:template  match = "/" > 
        <xsl:text>问题,答案
</xsl:text> 
        <xsl:for-each  select = "//tbody/row" > 
            <xsl:for-each  select ="entry[1]" > 
                <xsl:choose> 
                    <xsl:when  test = "p" > 
                        <xsl:for-each  select = "p" > 
                            <xsl:value-of  select = "oxy:escapeForCSV(normalize-space (.))" /> , <xsl:value-of 
                                select = "oxy:escapeForCSV(normalize-space(string-join(../../entry[2]//text(), ''))) " /> <xsl:text> 
</xsl:text> 
                        </xsl:for-each> 
                    </xsl:when> 
                    <xsl:otherwise> 
                        <xsl:value-of  select = "oxy:escapeForCSV(normalize-space( .))”/> , <xsl:value-of
                            选择= "oxy:escapeForCSV(normalize-space(string-join(../entry[2]//text(), '')))" /> <xsl:text> 
</xsl:text> 
                    </xsl:否则> 
                </xsl:choose> 
            </xsl:for-each> 
        </xsl:for-each> 
    </xsl:template>     
    <xsl:function  name = "oxy:escapeForCSV" > 
        <xsl:param  name = "value " /> 
        <xsl:value-of  select = "replace(replace($value, '"', '""'), ',', '","')" /> 
    </xsl :function> 
</xsl:stylesheet>

使用这两个文件创建一个转换场景。将输出保存为 CSV 文件,如下图所示:

应用转换后,应出现以下情况 CSV 文件:

What is Oxygen XML Editor?,Oxygen XML Editor is a great tool.
What is Oxygen XML?,Oxygen XML Editor is a great tool.
How do I learn DITA?,You can read the ""Oxygen"" user's guide"," and the Oxygen XML Blog.

注意:

CSV 文件的结构包含一个包含 2 列的表,其中第一列代表问题,第二列代表答案,以逗号分隔。一般来说,一行的形式是:“问题,答案”。一个限制是每个问题只能有一个答案。为使同一个答案适合多个问题,您可以将其复制到问题对应的列表中。

接下来,按照以下步骤在Google Dialogflow 聊天机器人中使用 CSV 文件中的数据:

  1. 在https://dialogflow.cloud.google.com/上创建一个帐户。
  2. 创建一个新代理并填写必填字段:

3. 在“设置”中,启用BETA FEATURES


4.转到Knowledge > CREATE KNOWLEDGE BASE,输入此知识库的名称,然后单击 SAVE 按钮。

5.使用 CSV 文档进行培训。为此:按照创建第一个并填写字段。从您的计算机选项中选择更新文件,然后选择所需的文件。单击 创建按钮。

该文档将在知识库中注册,如下图所示:

6.将问题和答案转换为意图。

单击上图中的查看链接。检查所有需要转换意图的问题。单击转换为意图按钮。

现在,当您单击 Intents 时,应该会出现转换后的问题:

7.做一个模拟。单击集成> Web 演示,如果演示功能已经禁用,请启用它。


8.将聊天机器人集成到您的身上 HTML 内容中。转到 Dialogflow 集成页面,单击Web Demo集成,您将获得一个 <iframe>HTML 元素,可以将其粘贴到您的身上 HTML 页面中。使用WebHelp自定义,您还可以将 Chatbot 集成到每个生成的 HTML 页面的页脚中。

本文展示了如何通过使用 DITA 主题生成逗号分隔值文件 CSV 来训练聊天机器人的意图和答案的基本方式。百度 UNIT 同样适用,我们后续分享。

着全球交流的加强,中文与印尼语之间的沟通需求越来越多。对于需要将中文PDF文件翻译成印尼语PDF的用户来说,这4款工具可以帮助您高效完成任务。无需担心翻译质量和准确性,这些工具都是非常优秀且易于使用的。

1、看往ai

看往ai是电商必备图片工具,提供了视频,图片,文字一站式AI处理,可以帮我们翻译任何文档,比如doc,docx,,xls,xlsx,csv,txt,srt,pdf、html,htm,xml,xhtml,json,xliff,tmx,dita,md,markdown,idml10等多种格式的文档,并不会破坏原有的文档排版和元素,中文、英语语种类型的文档都可以进行翻译,一键翻译成新的语言文档,支持几十种语言。

1、在百度中搜索“看往ai官网”,无需下载,即可使用(超级方便),并在页面上方找到“文档智能翻译”选项。

2、进入:文档智能翻译功能页面,先上传我们需要翻译的文档。

3、再选择我们的文档的原语言和我们需要翻译的语言,即可翻译文档

4、点击生成,把翻译后的文档保存在本地即可。

看往ai还具备电商常用的多个功能:AI模拟模特,视频一键翻译,图片一键翻译语言,AI做主图,AI做详情图,文档翻译,视频/图片换模特,卖点创作,标题创作,智能抠图,智能抠服饰,图片变清晰,智能图片无损放大,独立站文案创作等等,真的是电商人的必备工具了!搜索进入网站就可以使用了!!

2、有道翻译

有道翻译是许多用户推荐的翻译工具之一。它提供了准确的中文到印尼语的翻译服务,并且可以直接将PDF文件转换为目标语言的文件。您只需将待翻译的中文PDF文件上传至有道翻译平台,选择源语言和目标语言,然后点击翻译按钮即可。在几分钟内,您就能得到一个准确翻译的印尼语PDF文件。

3、百度翻译

百度翻译是另一个非常受欢迎的翻译工具。它不仅提供中文到印尼语的翻译,还支持多种语言之间的翻译服务。您可以使用百度翻译的扫描功能,直接扫描中文PDF文件中的文本,然后选择源语言和目标语言进行翻译。百度翻译还支持在线输入和手写输入,方便用户根据实际需求进行翻译。

4、谷歌翻译

谷歌翻译是一款功能强大的在线翻译工具,它可以将中文PDF文件快速准确地翻译为印尼语PDF。您可以选择将整个PDF文件上传至谷歌翻译平台,或者将其中的文本复制粘贴到翻译框中,再选择源语言和目标语言进行翻译。谷歌翻译还具有自动检测源语言功能,可以智能识别文本的语言,并将其翻译为您所需的语言。

这4款工具不仅翻译准确度高,而且操作简便,即使对于新手用户也能轻松上手。使用它们,您可以快速将中文PDF文件翻译成印尼语PDF,满足您的沟通和阅读需求。

需要注意的是,使用翻译工具时,我们应该理解它们可能会存在一定的局限性。尽管这些工具已经通过人工智能技术得到了极大的改进,但在特殊领域、行业术语或复杂句子的翻译中,仍然可能出现一些错误或不准确的情况。

1 -

场景

在文档中,我们有时候会在文字中使用颜色。

比如:

在文档中,使用在文字上加颜色来代表一定意义。使用MS Word编写文档的时候,直接在文字上加颜色就可以了。转换成DITA以后,大家会发现在XML编辑器的工具栏中并没有加字体颜色的工具栏,怎样在DITA文档中给文字加颜色呢?

- 2 -

分析

DITA采用内容与样式分离的思想。文字的颜色属于样式,放在样式文件中,并不在DITA文件中。XML编辑器中编辑的是文档的DITA Topic内容,不能直接编辑样式。这就是在XML编辑器中的工具栏中没有给文字加颜色的工具的原因 (菜单中也没有)。

怎么解决这个问题呢?

上例中,如果按照DITA的设计思想,最好是给内容加语义标签,然后使用样式来将标签渲染成不同的颜色。比如将内容设计成这样:

注:是具体的禁止、指令、警告和提示的文字用这些标签包裹

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
<topic id="doc123">
    <title>国家规定的安全色中表示警告注意的颜色</title>
    <body>
        <p>法律分析:</p>
        <p>国家规定的安全色有红、蓝、黄、绿四种颜色,其含义是:<stop>红色</stop>表示禁止,停止 (也表示防火);<instruction>蓝色</instruction>
            表示指令或必须遵守的规定;<warning>黄色</warning>表示警告、注意;<tip>绿色</tip>表示提示、安全状态、通行</p>
    </body>
</topic>

这需要在DITA里通过专有化机制,即:Specialization,加入<stop>、<instruction>、<warning>和<tip>标签来实现。这会导致一系列的改动,比如:所有输出样式、处理程序。同时,以后DITA升级了也要单独升级这部分专有化处理。变动和维护成本比较高。

一种折中的方案是,通过DITA中已有的标签和属性来标识数据,然后在样式中根据自定义属性值来用颜色显示内容。比如将内容设计成这样:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
<topic id="doc123">
    <title>国家规定的安全色中表示警告注意的颜色</title>
    <body>
        <p>法律分析:</p>
        <p>国家规定的安全色有红、蓝、黄、绿四种颜色,其含义是:<ph outputclass="color_red">红色</ph>表示禁止,停止 (也表示防火);<ph
                outputclass="color_blue">蓝色</ph>表示指令或必须遵守的规定;<ph outputclass="color_yellow"
                >黄色</ph>表示警告、注意;<ph outputclass="color_green">绿色</ph>表示提示、安全状态、通行</p>
    </body>
</topic>

然后在样式中根据outputclass来给文字加颜色。

这种方案的好处是使用DITA已有的标签和属性即可,不必使用专有化来创建新的标签,只需要在样式中加一些代码就可以实现。 变动和以后维护的成本相对较低。

- 3 -

方案实现

上边的分析部分已经描述了DITA内容可以做成的样子。那样式这部分怎么实现呢?这部分来说一说。

如果使用的是CSS来发布HTML和PDF,可以使用如下代码:

*[outputclass~="color_red"]{
    color: red;
}


*[outputclass~="color_blue"]{
    color: blue;
}


*[outputclass~="color_yellow"]{
    color: yellow;
}


*[outputclass~="color_green"]{
    color: green;
}

将这些代码放到一个文件中,比如叫style.css,然后在发布的时候引用这个样式文件即可(使用DITA-OT是指定args.css属性,将它的值设置成style.css文件的路径)。

输出效果如下:

如果使用XSLT/XSL-FO来发布PDF,要复杂一些,可以使用下边的代码实现:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    version="2.0">


    <xsl:template match="*[contains(@outputclass, 'color_red')]">
        <fo:inline color="red">
            <xsl:apply-templates />
        </fo:inline>
    </xsl:template>


    <xsl:template match="*[contains(@outputclass, 'color_blue')]">
        <fo:inline color="blue">
            <xsl:apply-templates />
        </fo:inline>
    </xsl:template>


    <xsl:template match="*[contains(@outputclass, 'color_yellow')]">
        <fo:inline color="yellow">
            <xsl:apply-templates />
        </fo:inline>
    </xsl:template>


    <xsl:template match="*[contains(@outputclass, 'color_green')]">
        <fo:inline color="green">
            <xsl:apply-templates />
        </fo:inline>
    </xsl:template>


</xsl:stylesheet>

需要根据DITA-OT定制XSLT/XSL-FO的方法进行配置。

输出效果如下:



微信扫描下方卡片关注公众号 ⬇️