Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mtbookv2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
mtbookv2
Commits
24677fd3
Commit
24677fd3
authored
Nov 22, 2020
by
曹润柘
Browse files
Options
Browse Files
Download
Plain Diff
合并分支 'caorunzhe' 到 'master'
Caorunzhe 查看合并请求
!442
parents
2096ab49
07bcff47
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
81 行增加
和
23 行删除
+81
-23
Chapter16/Figures/figure-shared-space-inductive-bilingual-dictionary.png
+0
-0
Chapter16/chapter16.tex
+22
-23
bibliography.bib
+59
-0
没有找到文件。
Chapter16/Figures/figure-shared-space-inductive-bilingual-dictionary.png
0 → 100644
查看文件 @
24677fd3
115 KB
Chapter16/chapter16.tex
查看文件 @
24677fd3
...
...
@@ -594,13 +594,21 @@ Joint training for neural machine translation models with monolingual data
\parinterval
直接进行无监督机器翻译是困难的。一个简单可行的思路是先把问题进行分解,然后分别解决各个子问题,最后形成完整的解决方案。放到无监督机器翻译里面,可以首先使用无监督方法寻找词与词之间的翻译,然后在这基础上,进一步得到句子到句子的翻译模型。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
无监督词典归纳
}
\label
{
unsupervised-dictionary-induction
}
\parinterval
{
\small\bfnew
{
词典归纳
}}
\index
{
词典归纳
}
(Bilingual Dictionary Induction,BDI
\index
{
Bilingual Dictionary Induction
}
),也叫
{
\small\bfnew
{
词典推断
}}
,是实现语种间单词级别翻译的任务。在统计机器翻译中,词典归纳是一项核心的任务,它从双语平行语料中发掘互为翻译的单词,是翻译知识的主要来源
\upcite
{
黄书剑0统计机器翻译中的词对齐研究
}
。在端到端神经机器翻译中,词典归纳通常作为一个下游任务被用到无监督机器翻译、多语言机器翻译等任务中。在神经机器翻译中,单词通过连续化的向量来表示,即词嵌入。所有单词分布在一个高维的空间中,基于人们对词嵌入空间的观察发现:连续的单词嵌入空间在各种语言中显示出类似的结构,这使得直接利用词嵌入来构建双语词典成为可能(
{
\color
{
red
}
参考文献!
}
)。其基本想法是先将来自不同语言的词嵌入投影到共享嵌入空间中,然后在此共享空间中归纳出双语词典(
{
\color
{
red
}
最好有一个图!
}
)。研究人员们进行了众多的尝试,较早的尝试是使用一个包含数千词对的种子词典作为锚点来学习从源语到目标语词嵌入空间的线性映射,将两个语言的词汇投影到共享的嵌入空间之后,执行一些对齐算法即可得到双语词典
\upcite
{
DBLP:journals/corr/MikolovLS13
}
。最近的研究表明,词典归纳可以在更弱的监督信号下完成,这些监督信号来自数百对小词典
\upcite
{
DBLP:conf/acl/VulicK16
}
、 相同的字符串
\upcite
{
DBLP:conf/iclr/SmithTHH17
}
,甚至仅仅是共享的数字
\upcite
{
DBLP:conf/acl/ArtetxeLA17
}
。
\parinterval
{
\small\bfnew
{
词典归纳
}}
\index
{
词典归纳
}
(Bilingual Dictionary Induction,BDI
\index
{
Bilingual Dictionary Induction
}
),也叫
{
\small\bfnew
{
词典推断
}}
,是实现语种间单词级别翻译的任务。在统计机器翻译中,词典归纳是一项核心的任务,它从双语平行语料中发掘互为翻译的单词,是翻译知识的主要来源
\upcite
{
黄书剑0统计机器翻译中的词对齐研究
}
。在端到端神经机器翻译中,词典归纳通常作为一个下游任务被用到无监督机器翻译、多语言机器翻译等任务中。在神经机器翻译中,单词通过连续化的向量来表示,即词嵌入。所有单词分布在一个高维的空间中,基于人们对词嵌入空间的观察发现:连续的单词嵌入空间在各种语言中显示出类似的结构,这使得直接利用词嵌入来构建双语词典成为可能
\upcite
{
DBLP:journals/corr/MikolovLS13
}
。如图
\ref
{
fig:16-1-lyf
}
所示,其基本想法是先将来自不同语言的词嵌入投影到共享嵌入空间中,然后在此共享空间中归纳出双语词典。研究人员们进行了众多的尝试,较早的尝试是使用一个包含数千词对的种子词典作为锚点来学习从源语到目标语词嵌入空间的线性映射,将两个语言的词汇投影到共享的嵌入空间之后,执行一些对齐算法即可得到双语词典
\upcite
{
DBLP:journals/corr/MikolovLS13
}
。最近的研究表明,词典归纳可以在更弱的监督信号下完成,这些监督信号来自数百对小词典
\upcite
{
DBLP:conf/acl/VulicK16
}
、 相同的字符串
\upcite
{
DBLP:conf/iclr/SmithTHH17
}
,甚至仅仅是共享的数字
\upcite
{
DBLP:conf/acl/ArtetxeLA17
}
。
\begin{figure}
[h]
\centering
\includegraphics
[scale=0.8]
{
Chapter16/Figures/figure-shared-space-inductive-bilingual-dictionary.png
}
\caption
{
无监督词典归纳原理图(
{
\color
{
red
}
A->a
}
)
}
\label
{
fig:16-1-lyf
}
\end{figure}
\parinterval
研究人员也提出了完全无监督的词典归纳方法,这类方法不依赖于任何种子词典即可实现词典归纳,下面进行介绍。
...
...
@@ -610,7 +618,7 @@ Joint training for neural machine translation models with monolingual data
\subsubsection
{
1. 方法框架
}
\parinterval
无监督词典归纳的核心思想是充分利用词嵌入空间近似同构的假设
(
{
\color
{
red
}
参考文献!
}
)
,基于一些无监督匹配的方法来得到一个初始化的种子词典,之后利用该种子词典作为起始监督信号不断进行微调进一步提高性能。总结起来,无监督词典归纳系统通常包括以下两个阶段:
\parinterval
无监督词典归纳的核心思想是充分利用词嵌入空间近似同构的假设
\upcite
{
DBLP:conf/emnlp/XuYOW18
}
,基于一些无监督匹配的方法来得到一个初始化的种子词典,之后利用该种子词典作为起始监督信号不断进行微调进一步提高性能。总结起来,无监督词典归纳系统通常包括以下两个阶段:
\begin{itemize}
\vspace
{
0.5em
}
...
...
@@ -620,23 +628,23 @@ Joint training for neural machine translation models with monolingual data
\vspace
{
0.5em
}
\end{itemize}
\parinterval
其原理图
XXX所示(
{
\color
{
red
}
如果这个图是别人论文里的,需要加参考文献!
}
)
,包括:
\parinterval
其原理图
\ref
{
fig:16-2-lyf
}
所示
,包括:
\begin{itemize}
\vspace
{
0.5em
}
\item
对于图
XX(a)中的分布在不同空间中的两个单语词嵌入
$
\mathbi
{
X
}$
和
$
\mathbi
{
Y
}$
,基于两者近似同构的假设,利用无监督匹配的方法来得到一个粗糙的线性映射
$
\mathbi
{
W
}$
,结果如图XX
(b)所示。
\item
对于图
\ref
{
fig:16-2-lyf
}
(a)中的分布在不同空间中的两个单语词嵌入
$
\mathbi
{
X
}$
和
$
\mathbi
{
Y
}$
,基于两者近似同构的假设,利用无监督匹配的方法来得到一个粗糙的线性映射
$
\mathbi
{
W
}$
,结果如图
\ref
{
fig:16-2-lyf
}
(b)所示。
\vspace
{
0.5em
}
\item
利用映射
$
\mathbi
{
W
}$
可以执行对齐算法从而归纳出一个种子词典,如图
XX
(c)所示。
\item
利用映射
$
\mathbi
{
W
}$
可以执行对齐算法从而归纳出一个种子词典,如图
\ref
{
fig:16-2-lyf
}
(c)所示。
\vspace
{
0.5em
}
\item
利用种子词典不断迭代微调进一步提高映射性能,最终映射的效果如图
XX
(d)所示,之后即可从中推断出词典作为最后的结果。
\item
利用种子词典不断迭代微调进一步提高映射性能,最终映射的效果如图
\ref
{
fig:16-2-lyf
}
(d)所示,之后即可从中推断出词典作为最后的结果。
\vspace
{
0.5em
}
\end{itemize}
\begin{figure}
[h]
\centering
\includegraphics
[scale=0.6]
{
Chapter16/Figures/figure-bilingual-dictionary-Induction
}
\caption
{
无监督词典归纳原理图(
{
\color
{
red
}
A->a
}
)
}
\label
{
fig:16-
1
}
\caption
{
无监督词典归纳原理图(
{
\color
{
red
}
A->a
}
)
\upcite
{
DBLP:conf/iclr/LampleCRDJ18
}
}
\label
{
fig:16-
2-lyf
}
\end{figure}
\parinterval
不同的无监督方法最大的区别主要在于第一阶段,获得初始种子词典的手段,第二阶段微调的原理都大同小异。第一阶段的主流方法主要有两大类:
...
...
@@ -649,29 +657,20 @@ Joint training for neural machine translation models with monolingual data
\vspace
{
0.5em
}
\end{itemize}
\parinterval
在得到映射
$
\mathbi
{
W
}$
之后,对于
$
\mathbi
{
X
}$
中的任意一个单词
$
x
$
,通过
$
W
_
x
$
将其映射到空间
$
\mathbi
{
Y
}$
中,然后在
$
\mathbi
{
Y
}$
中找到该点的最近邻点
$
y
$
,于是
$
y
$
就是
$
x
$
的翻译词,重复该过程即可归纳出种子词典D,第一阶段结束。事实上,由于第一阶段缺乏监督信号,得到的种子词典D
会包含大量的噪音,性能并不高,因此需要进行进一步的微调。
\parinterval
在得到映射
$
\mathbi
{
W
}$
之后,对于
$
\mathbi
{
X
}$
中的任意一个单词
$
x
_{
i
}$
,通过
$
\mathbi
{
W
}
\cdot
\mathbi
{
E
}
(
{
x
}_{
i
}
)
$
将其映射到空间
$
\mathbi
{
Y
}$
中(
$
\mathbi
{
E
}
(
{
x
}_{
i
}
)
$
表示的是单词
$
x
_{
i
}$
的词嵌入向量),然后在
$
\mathbi
{
Y
}$
中找到该点的最近邻点
$
y
_{
j
}$
,于是
$
y
_{
j
}$
就是
$
x
_{
i
}$
的翻译词,重复该过程即可归纳出种子词典
$
D
$
,第一阶段结束。事实上,由于第一阶段缺乏监督信号,得到的种子词典
$
D
$
会包含大量的噪音,性能并不高,因此需要进行进一步的微调。
\parinterval
微调的原理普遍基于普氏分析
\upcite
{
DBLP:journals/corr/MikolovLS13
}
。假设现在有一个种子词典
$
D
=
\left\{
x
_{
i
}
, y
_{
i
}
\right\}
$
其中
${
i
\in\{
1
, n
\}
}$
,和两个单语词嵌入
$
\mathbi
{
X
}$
和
$
\mathbi
{
Y
}$
,那么就可以将
D
作为
{
\small\bfnew
{
映射锚点
}}
\index
{
映射锚点
}
(Anchor
\index
{
Anchor
}
)学习一个转移矩阵
$
\mathbi
{
W
}$
,使得
$
\mathbi
{
W
}
\cdot
\mathbi
{
X
}$
与
$
\mathbi
{
Y
}$
这两个空间尽可能相近,此外通过对
$
\mathbi
{
W
}$
施加正交约束可以显著提高能
\upcite
{
DBLP:conf/naacl/XingWLL15
}
,于是这个优化问题就转变成了
{
\small\bfnew
{
普鲁克问题
}}
\index
{
普鲁克问题
}
(Procrustes Problem
\index
{
Procrustes Problem
}
)
\upcite
{
DBLP:conf/iclr/SmithTHH17
}
,可以通过
{
\small\bfnew
{
奇异值分解
}}
\index
{
奇异值分解
}
(Singular Value Decomposition,SVD
\index
{
Singular Value Decomposition,SVD
}
)来获得近似解:
\parinterval
微调的原理普遍基于普氏分析
\upcite
{
DBLP:journals/corr/MikolovLS13
}
。假设现在有一个种子词典
$
D
=
\left\{
x
_{
i
}
, y
_{
i
}
\right\}
$
其中
${
i
\in\{
1
, n
\}
}$
,和两个单语词嵌入
$
\mathbi
{
X
}$
和
$
\mathbi
{
Y
}$
,那么就可以将
$
D
$
作为
{
\small\bfnew
{
映射锚点
}}
\index
{
映射锚点
}
(Anchor
\index
{
Anchor
}
)学习一个转移矩阵
$
\mathbi
{
W
}$
,使得
$
\mathbi
{
W
}
\cdot
\mathbi
{
X
}$
与
$
\mathbi
{
Y
}$
这两个空间尽可能相近,此外通过对
$
\mathbi
{
W
}$
施加正交约束可以显著提高能
\upcite
{
DBLP:conf/naacl/XingWLL15
}
,于是这个优化问题就转变成了
{
\small\bfnew
{
普鲁克问题
}}
\index
{
普鲁克问题
}
(Procrustes Problem
\index
{
Procrustes Problem
}
)
\upcite
{
DBLP:conf/iclr/SmithTHH17
}
,可以通过
{
\small\bfnew
{
奇异值分解
}}
\index
{
奇异值分解
}
(Singular Value Decomposition,SVD
\index
{
Singular Value Decomposition,SVD
}
)来获得近似解:
\begin{eqnarray}
\mathbi
{
W
}^{
\star
}
&
=
&
\underset
{
\mathbi
{
W
}
\in
O
_{
d
}
(
\mathbb
{
R
}
)
}{
\operatorname
{
argmin
}}
\|\mathbi
{
W
}
\cdot
\mathbi
{
X
}
-
\mathbi
{
Y
}
\|
_{
\mathrm
{
F
}}
=
\mathbi
{
U
}
\cdot
\mathbi
{
V
}^{
T
}
\\
\textrm
{
s.t.
\ \ \ \
}
\mathbi
{
U
}
\Sigma
\mathbi
{
V
}^{
T
}
&
=
&
\operatorname
{
SVD
}
\left
(
\mathbi
{
Y
}
\cdot
\mathbi
{
X
}^{
T
}
\right
)
\mathbi
{
W
}^{
\star
}
&
=
&
\underset
{
\mathbi
{
W
}
\in
O
_{
d
}
(
\mathbb
{
R
}
)
}{
\operatorname
{
argmin
}}
\|\mathbi
{
W
}
\cdot
\mathbi
{
X
}
'-
\mathbi
{
Y
}
'
\|
_{
\mathrm
{
F
}}
=
\mathbi
{
U
}
\cdot
\mathbi
{
V
}^{
\rm
{
T
}
}
\\
\textrm
{
s.t.
\ \ \ \
}
\mathbi
{
U
}
\Sigma
\mathbi
{
V
}^{
\rm
{
T
}}
&
=
&
\operatorname
{
SVD
}
\left
(
\mathbi
{
Y
}
'
\cdot
\mathbi
{
X
}
'
^{
\rm
{
T
}
}
\right
)
\label
{
eq:16-1
}
\end{eqnarray}
\noindent
其中,
{
\color
{
red
}
$
\operatorname
{
SVD
}
(
\cdot
)
$
表示XXX
}
,
$
\mathbi
{
Y
}$
和
$
\mathbi
{
X
}$
行对齐。利用上式可以获得新的
$
\mathbi
{
W
}$
,通过
$
\mathbi
{
W
}$
可以归纳出新的D,如此迭代进行微调最后即可以得到收敛的D。
\parinterval
目前,无监督词典归纳工作主要集中在两个方向,一个方向是通过用新的建模方法或改进上述两阶段方法来提升无监督词典归纳的性能。
{
\color
{
red
}
稍微扩展一下说,把下面的参考文献使用上可以
}
。
\noindent
其中,
$
\operatorname
{
SVD
}
(
\cdot
)
$
表示奇异值分解,
$
\mathbi
{
Y
}
'
$
和
$
\mathbi
{
X
}
'
$
中的单词来自
$
D
$
且行对齐。利用上式可以获得新的
$
\mathbi
{
W
}$
,通过
$
\mathbi
{
W
}$
可以归纳出新的
$
D
$
,如此迭代进行微调最后即可以得到收敛的
$
D
$
。
\parinterval
另外一个方向是旨在分析或提升无监督词典归纳的鲁棒性。
{
\color
{
red
}
稍微扩展一下说,把下面的参考文献使用上可以
}
。
\parinterval
较早的无监督方法是基于GAN
\upcite
{
DBLP:conf/acl/ZhangLLS17,DBLP:conf/emnlp/ZhangLLS17,DBLP:conf/iclr/LampleCRDJ18
}
,这是一个很自然的想法,利用生成器产生映射然后用判别器来区别两个空间,尽管它取得了不错的效果,然而研究表明GAN缺乏稳定性,容易在低资源语言对上失败
\upcite
{
hartmann2018empirical
}
,因此有不少改进的工作,比如:利用变分自编码器(Variational Autoencoders,VAEs)来捕获更深层次的语义信息并结合对抗训练的方法
\upcite
{
DBLP:conf/emnlp/DouZH18,DBLP:conf/naacl/MohiuddinJ19
}
;通过改进最近邻点的度量函数来提升性能的方法
\upcite
{
DBLP:conf/acl/HuangQC19,DBLP:conf/emnlp/JoulinBMJG18
}
;利用多语言信号来提升性能的方法
\upcite
{
DBLP:conf/emnlp/ChenC18,DBLP:conf/emnlp/TaitelbaumCG19,DBLP:journals/corr/abs-1811-01124,DBLP:conf/naacl/HeymanVVM19
}
;也有一些工作舍弃GAN,通过直接优化度量空间距离来进行匹配的方法
\upcite
{
DBLP:conf/emnlp/HoshenW18,DBLP:conf/emnlp/XuYOW18,DBLP:conf/emnlp/Alvarez-MelisJ18,DBLP:conf/emnlp/MukherjeeYH18
}
。此外,也有一些工作是旨在分析或提升无监督词典归纳的鲁棒性。比如通过大量实验来分析无监督词典归纳任务的局限性、难点以及挑战
\upcite
{
DBLP:conf/acl/SogaardVR18,DBLP:conf/acl/OrmazabalALSA19,DBLP:conf/emnlp/VulicGRK19,DBLP:conf/emnlp/HartmannKS18
}
;分析和对比目前各种无监督方法的性能
\upcite
{
DBLP:conf/nips/HartmannKS19
}
;通过实验分析指出目前所用的数据集存在的问题
\upcite
{
DBLP:conf/emnlp/Kementchedjhieva19
}
。
{
\color
{
red
}
下面有些罗列的感觉,不能这么写,还是要有一些提炼和归纳。
}
\begin{itemize}
\vspace
{
0.5em
}
\item
提升词典归纳的性能。比如,基于变分自编码器(Variational Autoencoders,VAEs)的方法
\upcite
{
DBLP:conf/emnlp/DouZH18
}
;基于PCA的方法
\upcite
{
DBLP:conf/emnlp/HoshenW18
}
;基于语言模型和噪声自编码器的方法
\upcite
{
DBLP:conf/emnlp/KimGN18
}
;基于互信息的方法
\upcite
{
DBLP:conf/emnlp/MukherjeeYH18
}
;基于GAN的方法(WORD TRANSLATION WITHOUT PARALLEL DATA);基于Gromov-Wasserstein匹配的方法
\upcite
{
DBLP:conf/emnlp/Alvarez-MelisJ18
}
;多语言无监督词典归纳
\upcite
{
DBLP:conf/emnlp/ChenC18,DBLP:conf/emnlp/TaitelbaumCG19,DBLP:journals/corr/abs-1811-01124,DBLP:conf/naacl/HeymanVVM19
}
;基于Sinkhorn距离和反向翻译的方法
\upcite
{
DBLP:conf/emnlp/XuYOW18
}
;改进归纳阶段寻找最近邻点的度量函数
\upcite
{
DBLP:conf/acl/HuangQC19
}
;基于对抗自编码器的方法
\upcite
{
DBLP:conf/naacl/MohiuddinJ19
}
;基于语言形态学感知的方法
\upcite
{
DBLP:conf/acl/YangLCLS19
}
;基于无监督机器翻译的方法
\upcite
{
DBLP:conf/acl/ArtetxeLA19a
}
;基于后处理embedding的方法
\upcite
{
DBLP:conf/rep4nlp/VulicKG20
}
。
\item
分析或提升无监督词典归纳的鲁棒性。分析无监督词典归纳的局限性
\upcite
{
DBLP:conf/acl/SogaardVR18,DBLP:conf/acl/OrmazabalALSA19,DBLP:conf/emnlp/VulicGRK19
}
;提出新的初始化方法和改进迭代阶段
\upcite
{
DBLP:conf/lrec/GarneauGBDL20
}
;改进优化目标函数
\upcite
{
DBLP:conf/emnlp/JoulinBMJG18
}
;通过降维改进初始化阶段
\upcite
{
A2020Li
}
;分析基于GAN方法的稳定性
\upcite
{
hartmann2018empirical
}
;分析和对比各种无监督方法性能
\upcite
{
DBLP:conf/nips/HartmannKS19
}
;分析无监督对齐方法的挑战和难点
\upcite
{
DBLP:conf/emnlp/HartmannKS18
}
;通过实验分析指出目前所用的数据集存在一些问题
\upcite
{
DBLP:conf/emnlp/Kementchedjhieva19
}
。
\vspace
{
0.5em
}
\end{itemize}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
bibliography.bib
查看文件 @
24677fd3
...
...
@@ -7177,6 +7177,65 @@ author = {Yoshua Bengio and
volume = {abs/1309.4168},
year = {2013}
}
@article{DBLP:journals/corr/MikolovLS13,
author = {Tomas Mikolov and
Quoc V. Le and
Ilya Sutskever},
title = {Exploiting Similarities among Languages for Machine Translation},
journal = {CoRR},
volume = {abs/1309.4168},
year = {2013}
}
@inproceedings{DBLP:conf/emnlp/XuYOW18,
author = {Ruochen Xu and
Yiming Yang and
Naoki Otani and
Yuexin Wu},
title = {Unsupervised Cross-lingual Transfer of Word Embedding Spaces},
pages = {2465--2474},
publisher = {Association for Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/iclr/LampleCRDJ18,
author = {Guillaume Lample and
Alexis Conneau and
Marc'Aurelio Ranzato and
Ludovic Denoyer and
Herv{\'{e}} J{\'{e}}gou},
title = {Word translation without parallel data},
publisher = {International Conference on Learning Representations},
year = {2018}
}
@inproceedings{DBLP:conf/emnlp/ZhangLLS17,
author = {Meng Zhang and
Yang Liu and
Huanbo Luan and
Maosong Sun},
title = {Earth Mover's Distance Minimization for Unsupervised Bilingual Lexicon
Induction},
pages = {1934--1945},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2017}
}
@inproceedings{DBLP:conf/naacl/MohiuddinJ19,
author = {Tasnim Mohiuddin and
Shafiq R. Joty},
title = {Revisiting Adversarial Autoencoder for Unsupervised Word Translation
with Cycle Consistency and Improved Training},
pages = {3857--3867},
publisher = {Association for Computational Linguistics},
year = {2019}
}
%%%%% chapter 16------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论