From a73846dca2865cd2d8cc2f21d5525ab8f4177b7a Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 13:55:04 +0800 Subject: [PATCH 01/57] Create conf.py --- docs/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index d0d6f9a2..54bf121c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -56,7 +56,7 @@ def copy_tree(src, tar): # npsphinx nbsphinx_thumbnails = { - 'build/blitz/sif/sif': '_static/item_figure.png', + 'build/blitz/sif/sif': '_static/sif.png', 'build/blitz/sif/sif_addition': '_static/sif_addition.png', 'build/blitz/utils/data': '_static/data.png', 'build/blitz/formula/formula': '_static/formula.png', From f15916528b2889b0cd733f2d6ddee2e7dca283f5 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 14:06:03 +0800 Subject: [PATCH 02/57] Add files via upload --- asset/_static/sif.png | Bin 0 -> 25344 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 asset/_static/sif.png diff --git a/asset/_static/sif.png b/asset/_static/sif.png new file mode 100644 index 0000000000000000000000000000000000000000..395e34788c6029c3bfe85f28f66dc7e0159b871b GIT binary patch literal 25344 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 Date: Sat, 21 Aug 2021 14:10:31 +0800 Subject: [PATCH 03/57] Delete sif.png --- asset/_static/sif.png | Bin 25344 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 asset/_static/sif.png diff --git a/asset/_static/sif.png b/asset/_static/sif.png deleted file mode 100644 index 395e34788c6029c3bfe85f28f66dc7e0159b871b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25344 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 Date: Sat, 21 Aug 2021 14:10:44 +0800 Subject: [PATCH 04/57] Add files via upload --- asset/_static/sif.png | Bin 0 -> 5347 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 asset/_static/sif.png diff --git a/asset/_static/sif.png b/asset/_static/sif.png new file mode 100644 index 0000000000000000000000000000000000000000..30c7cfefe8c35148425abf57c8ee76c8ec28d8a9 GIT binary patch literal 5347 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 Date: Sat, 21 Aug 2021 14:20:11 +0800 Subject: [PATCH 05/57] Create conf.py --- docs/source/conf.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 54bf121c..06411377 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -56,7 +56,7 @@ def copy_tree(src, tar): # npsphinx nbsphinx_thumbnails = { - 'build/blitz/sif/sif': '_static/sif.png', + 'build/blitz/sif/sif': '_static/item_figure.png', 'build/blitz/sif/sif_addition': '_static/sif_addition.png', 'build/blitz/utils/data': '_static/data.png', 'build/blitz/formula/formula': '_static/formula.png', @@ -64,8 +64,16 @@ def copy_tree(src, tar): 'build/blitz/parse/parse': '_static/parse.png', 'build/blitz/formula/formula': '_static/formula.png', 'build/blitz/tokenizer/tokenizer': '_static/tokenizer.png', - 'build/blitz/pretrain/prepare_dataset': '_static/prepare_dataset.jpg', 'build/blitz/vectorization/i2v': '_static/i2v.png', + 'build/blitz/pretrain/prepare_dataset': '_static/prepare_dataset.jpg', + 'build/blitz/pretrain/gensim/d2v_bow_tfidf': '_static/d2v_bow_tfidf.png', + 'build/blitz/pretrain/gensim/d2v_general': '_static/d2v_general.png', + 'build/blitz/pretrain/gensim/d2v_stem_tf': '_static/d2v_stem_tf.png', + 'build/blitz/pretrain/gensim/w2v_stem_text': '_static/w2v_stem_text.png', + 'build/blitz/pretrain/gensim/w2v_stem_tf': '_static/w2v_stem_tf.png', + 'build/blitz/pretrain/seg_token/d2v': '_static/d2v.png', + 'build/blitz/pretrain/seg_token/d2v_d1': '_static/d2v_d1.png', + 'build/blitz/pretrain/seg_token/d2v_d2': '_static/d2v_d2.png', } # Add any paths that contain templates here, relative to this directory. From 39c8ce61210dc86f6d5ff672bc466ab6a2037279 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 14:34:03 +0800 Subject: [PATCH 06/57] Create conf.py --- docs/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 06411377..9d6a118b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -56,7 +56,7 @@ def copy_tree(src, tar): # npsphinx nbsphinx_thumbnails = { - 'build/blitz/sif/sif': '_static/item_figure.png', + 'build/blitz/sif/sif': '_static/sif.png', 'build/blitz/sif/sif_addition': '_static/sif_addition.png', 'build/blitz/utils/data': '_static/data.png', 'build/blitz/formula/formula': '_static/formula.png', From 7127957e5fad1c945fbb173cf9c1ce989503560f Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 14:48:04 +0800 Subject: [PATCH 07/57] Create index.rst --- docs/source/tutorial/zh/index.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/source/tutorial/zh/index.rst b/docs/source/tutorial/zh/index.rst index 1b03d7d8..5e891111 100644 --- a/docs/source/tutorial/zh/index.rst +++ b/docs/source/tutorial/zh/index.rst @@ -146,5 +146,3 @@ seg_token例子 :glob: d2v.ipynb <../../build/blitz/pretrain/seg_token/d2v.ipynb> - d2v_d1 <../../build/blitz/pretrain/seg_token/d2v_d1.ipynb> - d2v_d2 <../../build/blitz/pretrain/seg_token/d2v_d2.ipynb> From edc82060c26ad22906692ed1a11d475cab60b51a Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 14:48:58 +0800 Subject: [PATCH 08/57] Create index.rst --- docs/source/tutorial/zh/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/index.rst b/docs/source/tutorial/zh/index.rst index 5e891111..18ce7d4e 100644 --- a/docs/source/tutorial/zh/index.rst +++ b/docs/source/tutorial/zh/index.rst @@ -120,8 +120,8 @@ gensim模型d2v例子 :name: rst2-gallery :glob: - d2v_bow_tfidf <../../build/blitz/pretrain/gensim/d2v_bow_tfidf.ipynb> d2v_general <../../build/blitz/pretrain/gensim/d2v_general.ipynb> + d2v_bow_tfidf <../../build/blitz/pretrain/gensim/d2v_bow_tfidf.ipynb> d2v_stem_tf <../../build/blitz/pretrain/gensim/d2v_stem_tf.ipynb> From b119b308dcbb3f1872990352cf3a211839a28d30 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 16:42:50 +0800 Subject: [PATCH 09/57] Add files via upload --- asset/_static/d2v.png | Bin 0 -> 6631 bytes asset/_static/d2v_bow_tfidf.png | Bin 0 -> 12422 bytes asset/_static/d2v_general.png | Bin 0 -> 10254 bytes asset/_static/d2v_stem_tf.png | Bin 0 -> 9898 bytes asset/_static/w2v_stem_text.png | Bin 0 -> 34879 bytes asset/_static/w2v_stem_tf.png | Bin 0 -> 49486 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 asset/_static/d2v.png create mode 100644 asset/_static/d2v_bow_tfidf.png create mode 100644 asset/_static/d2v_general.png create mode 100644 asset/_static/d2v_stem_tf.png create mode 100644 asset/_static/w2v_stem_text.png create mode 100644 asset/_static/w2v_stem_tf.png diff --git a/asset/_static/d2v.png b/asset/_static/d2v.png new file mode 100644 index 0000000000000000000000000000000000000000..71d6994e0b7b5ea359669ade861b04fc76d98f25 GIT binary patch literal 6631 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 OpmenKHOn=ghx|VUv^hoq literal 0 HcmV?d00001 diff --git a/asset/_static/d2v_bow_tfidf.png b/asset/_static/d2v_bow_tfidf.png new file mode 100644 index 0000000000000000000000000000000000000000..c5215160a276a5ab12535a81e54dcecb4f0dd17a GIT binary patch literal 12422 zcmd72WmH>V&^Jm;ONBrw6bKZGLvez&K!M^;DDDzmi&OlMg`mZXYjJnCrb)2i?v� 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 Jg}8Cx{{xy>VHp4b literal 0 HcmV?d00001 diff --git a/asset/_static/d2v_general.png b/asset/_static/d2v_general.png new file mode 100644 index 0000000000000000000000000000000000000000..524bd15785412c1c378357d3797aa00a6829c11c GIT binary patch literal 10254 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∾BJni|Ba^0AhmgB)nM7{37<`&=^ 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 n{of(~ua^JUu>b$f$p`H_ARt5_(qh7D9-!yH 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 Date: Sat, 21 Aug 2021 16:49:24 +0800 Subject: [PATCH 10/57] Create parse.rst --- docs/source/tutorial/zh/parse.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/tutorial/zh/parse.rst b/docs/source/tutorial/zh/parse.rst index e73f0075..9d6ea22e 100644 --- a/docs/source/tutorial/zh/parse.rst +++ b/docs/source/tutorial/zh/parse.rst @@ -28,6 +28,7 @@ -------------------- .. toctree:: + :maxdepth: 1 :titlesonly: 文本语法结构解析 From f03b7e84e520a11b72b0055f1963c79fed0fb90b Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 16:50:00 +0800 Subject: [PATCH 11/57] Create parse.rst From 912185553dbe287b61c97c3fc807447aa94dcedb Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 16:50:26 +0800 Subject: [PATCH 12/57] Create seg.rst --- docs/source/tutorial/zh/seg.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/tutorial/zh/seg.rst b/docs/source/tutorial/zh/seg.rst index 8dc91196..9996dcee 100644 --- a/docs/source/tutorial/zh/seg.rst +++ b/docs/source/tutorial/zh/seg.rst @@ -18,6 +18,7 @@ -------------------- .. toctree:: + :maxdepth: 1 :titlesonly: 语义成分分解 From 6c4e681e40b5773a89adc0f606d43ac0188b0139 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:05:38 +0800 Subject: [PATCH 13/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 98 ++++++++++++++++++++++++++++++++- 1 file changed, 97 insertions(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index e80e31d5..0b3812eb 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -1 +1,97 @@ -.. mdinclude:: ../../../SIF4TI_CH.md +标准测试项目格式 +===================== + +version: 0.2 + +为了后续研究和使用的方便,我们需要一个统一的试题语法标准。 + +语法规则 +------------- + +1. 题目文本中只允许出现中文字符、中英文标点和换行符。 + +2. 使用 \$\SIFBlank\$ 替换横线,对于选择题中的括号使用 \$\SIFChoice\$ 替换。 + +3. 图片 ID 以公式的形式嵌入文本中:`$\FigureID{ uuid }$` 或用 base64 编码表示,特别的,内容为公式的图片用`$\FormFigureID{ uuid }$`表示。 + +4. 文本标注格式:统一用 `$\textf{item,CHAR_EN}$` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, biu}$ 表示 ***EduNLP*** + +5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 `$$` 之中。 + +6. 分子式的录入标准暂且参考 [INCHI](https://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E5%8C%96%E5%90%88%E7%89%A9%E6%A0%87%E8%AF%86) + +7. 目前对 latex 内部语法没有要求。 + +:: + + 1. Item -> CHARACTER|EN_PUN_LIST|CH_PUN_LIST|FORMULA|QUES_MARK + 2. EN_PUN_LIST -> [',', '.', '?', '!', ':', ';', '\'', '\"', '(', ')', ' ','_','/','|','\\','<','>','[',']','-'] + 3. CH_PUN_LIST -> [',', '。', '!', '?', ':',';', '‘', '’', '“', '”', '(', ')', ' ', '、','《','》','—','.'] + 4. FORMULA -> $latex formula$ | $\FormFigureID{UUID}$ | $\FormFigureBase64{BASE64}$ + 5. FIGURE -> $\FigureID{UUID}$ | $\FigureBase64{BASE64}$ + 6. UUID -> [a-zA-Z\-0-9]+ + 7. CHARACTER -> CHAR_EN | CHAR_CH + 8. CHAR_EN -> [a-zA-Z]+ + 9. CHAR_CH -> [\u4e00-\u9fa5]+ + 10. DIGITAL -> [0-9]+ + 11. QUES_MARK -> $\SIFBlank$ | $\SIFChoice$ + + +注意事项 ++++++++++++ + +1. 保留字符与转义 + +2. 数字 + +3. 选空与填空 + +4. 对于单个的数字或字符也需要添加 `$$`(目前能实现自动校验) + +5. latex 公式中尽量不出现中文:(`\text{这里出现中文}`) + +6. MySql 数据库导入数据时会自动忽略一个 `\`,所以录入的公式需要进一步处理为 `\\` + +示例 +----------- + +标准形式: + +1. `若$x,y$满足约束条件$\\left\\{\\begin{array}{c}2 x+y-2 \\leq 0 \\\\ x-y-1 \\geq 0 \\\\ y+1 \\geq 0\\end{array}\\right.$,则$z=x+7 y$的最大值$\\SIFUnderline$'` + +2. `已知函数$f(x)=|3 x+1|-2|x|$画出$y=f(x)$的图像求不等式$f(x)>f(x+1)$的解集$\\PictureID{3bf2ddf4-8af1-11eb-b750-b46bfc50aa29}$$\\PictureID{59b8bd14-8af1-11eb-93a5-b46bfc50aa29}$$\\PictureID{63118b3a-8b75-11eb-a5c0-b46bfc50aa29}$$\\PictureID{6a006179-8b76-11eb-b386-b46bfc50aa29}$$\\PictureID{088f15eb-8b7c-11eb-a86f-b46bfc50aa29}$` + +非标准形式: + +1. 字母、数字和数学符号连续混合出现: + 例如: + `完成下面的2x2列联表,` + `(单位:m3)` + `则输出的n=` + +2. 特殊的数学符号没有用 latex 公式表示: + 例如: + `命题中真命题的序号是 ①` + `AB是⊙O的直径,AC是⊙O的切线,BC交⊙O于点E.若D为AC的中点` + +3. 出现以 unicode 编码写成的字符 + 例如:`则$a$的取值范围是(\u3000\u3000)` + + +Change Log +------------------ + +2021-05-18 + +修改: + +1. 原用 \$\SIFUnderline\$ 和 \$\SIFBracket\$ 来替换填空题中的横线和选择题中的括号,现分别用 \$\SIFBlank\$ 和 \$\SIFChoice\$ 替换。 +2. 原统一用`$\PictureID{ uuid }$`表示图片,现使用`$\FigureID{ uuid }$`,其中对于数据公式,用`$\FormFigureID{ uuid }$`来表示。 + +2021-06-28 + +添加: + +1. 注明 `$$` 之中不能出现换行符。 +2. 添加文本标注格式说明。 + From 11e86272bece9cc925e49ee5d901739bd6c99a80 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:10:45 +0800 Subject: [PATCH 14/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 0b3812eb..d4ee73ec 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -18,22 +18,32 @@ version: 0.2 5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 `$$` 之中。 -6. 分子式的录入标准暂且参考 [INCHI](https://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E5%8C%96%E5%90%88%E7%89%A9%E6%A0%87%E8%AF%86) +6. 分子式的录入标准暂且参考 `INCHI `_ 7. 目前对 latex 内部语法没有要求。 :: 1. Item -> CHARACTER|EN_PUN_LIST|CH_PUN_LIST|FORMULA|QUES_MARK + 2. EN_PUN_LIST -> [',', '.', '?', '!', ':', ';', '\'', '\"', '(', ')', ' ','_','/','|','\\','<','>','[',']','-'] + 3. CH_PUN_LIST -> [',', '。', '!', '?', ':',';', '‘', '’', '“', '”', '(', ')', ' ', '、','《','》','—','.'] + 4. FORMULA -> $latex formula$ | $\FormFigureID{UUID}$ | $\FormFigureBase64{BASE64}$ + 5. FIGURE -> $\FigureID{UUID}$ | $\FigureBase64{BASE64}$ + 6. UUID -> [a-zA-Z\-0-9]+ + 7. CHARACTER -> CHAR_EN | CHAR_CH + 8. CHAR_EN -> [a-zA-Z]+ + 9. CHAR_CH -> [\u4e00-\u9fa5]+ + 10. DIGITAL -> [0-9]+ + 11. QUES_MARK -> $\SIFBlank$ | $\SIFChoice$ From 03c2e6c3be6d170f45ba7ac4439a4eab24802ffc Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:26:04 +0800 Subject: [PATCH 15/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index d4ee73ec..e68b3c62 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -14,7 +14,7 @@ version: 0.2 3. 图片 ID 以公式的形式嵌入文本中:`$\FigureID{ uuid }$` 或用 base64 编码表示,特别的,内容为公式的图片用`$\FormFigureID{ uuid }$`表示。 -4. 文本标注格式:统一用 `$\textf{item,CHAR_EN}$` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, biu}$ 表示 ***EduNLP*** +4. 文本标注格式:统一用 `$\textf{item,CHAR_EN}$` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, bi}$ 表示 ***EduNLP*** 5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 `$$` 之中。 @@ -74,18 +74,26 @@ version: 0.2 非标准形式: 1. 字母、数字和数学符号连续混合出现: + 例如: + `完成下面的2x2列联表,` + `(单位:m3)` + `则输出的n=` 2. 特殊的数学符号没有用 latex 公式表示: + 例如: + `命题中真命题的序号是 ①` + `AB是⊙O的直径,AC是⊙O的切线,BC交⊙O于点E.若D为AC的中点` 3. 出现以 unicode 编码写成的字符 - 例如:`则$a$的取值范围是(\u3000\u3000)` + + 例如:`则$a$的取值范围是(\\u3000\\u3000)` Change Log @@ -95,13 +103,15 @@ Change Log 修改: -1. 原用 \$\SIFUnderline\$ 和 \$\SIFBracket\$ 来替换填空题中的横线和选择题中的括号,现分别用 \$\SIFBlank\$ 和 \$\SIFChoice\$ 替换。 -2. 原统一用`$\PictureID{ uuid }$`表示图片,现使用`$\FigureID{ uuid }$`,其中对于数据公式,用`$\FormFigureID{ uuid }$`来表示。 +1. 原用 \$\\SIFUnderline\$ 和 \$\\SIFBracket\$ 来替换填空题中的横线和选择题中的括号,现分别用 \$\\SIFBlank\$ 和 \$\\SIFChoice\$ 替换。 + +2. 原统一用`$\\PictureID{ uuid }$`表示图片,现使用`$\\FigureID{ uuid }$`,其中对于数据公式,用`$\\FormFigureID{ uuid }$`来表示。 2021-06-28 添加: 1. 注明 `$$` 之中不能出现换行符。 + 2. 添加文本标注格式说明。 From 6ef1df4878c8924a8cefdcdff9847c55150261b5 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:29:09 +0800 Subject: [PATCH 16/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index e68b3c62..429692d5 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -10,11 +10,11 @@ version: 0.2 1. 题目文本中只允许出现中文字符、中英文标点和换行符。 -2. 使用 \$\SIFBlank\$ 替换横线,对于选择题中的括号使用 \$\SIFChoice\$ 替换。 +2. 使用 \$\SIFBlank\$ 替换横线,对于选择题中的括号使用 \$\\SIFChoice\$ 替换。 -3. 图片 ID 以公式的形式嵌入文本中:`$\FigureID{ uuid }$` 或用 base64 编码表示,特别的,内容为公式的图片用`$\FormFigureID{ uuid }$`表示。 +3. 图片 ID 以公式的形式嵌入文本中:`$\\FigureID{ uuid }$` 或用 base64 编码表示,特别的,内容为公式的图片用`$\\FormFigureID{ uuid }$`表示。 -4. 文本标注格式:统一用 `$\textf{item,CHAR_EN}$` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, bi}$ 表示 ***EduNLP*** +4. 文本标注格式:统一用 `$\\textf{item,CHAR_EN}$` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\\textf{EduNLP, bi}$ 表示 ***EduNLP*** 5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 `$$` 之中。 @@ -44,7 +44,7 @@ version: 0.2 10. DIGITAL -> [0-9]+ - 11. QUES_MARK -> $\SIFBlank$ | $\SIFChoice$ + 11. QUES_MARK -> $\\SIFBlank$ | $\\SIFChoice$ 注意事项 @@ -58,7 +58,7 @@ version: 0.2 4. 对于单个的数字或字符也需要添加 `$$`(目前能实现自动校验) -5. latex 公式中尽量不出现中文:(`\text{这里出现中文}`) +5. latex 公式中尽量不出现中文:(`\\text{这里出现中文}`) 6. MySql 数据库导入数据时会自动忽略一个 `\`,所以录入的公式需要进一步处理为 `\\` From 275f0a044f3a1a4c7b0e67351da2ee93433fb4e6 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:29:41 +0800 Subject: [PATCH 17/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 429692d5..a21e2d86 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -44,7 +44,7 @@ version: 0.2 10. DIGITAL -> [0-9]+ - 11. QUES_MARK -> $\\SIFBlank$ | $\\SIFChoice$ + 11. QUES_MARK -> $\SIFBlank$ | $\SIFChoice$ 注意事项 From 6d6e02966aac621e7ac00b0ee28b481508aa3651 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:32:57 +0800 Subject: [PATCH 18/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index a21e2d86..32204843 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -12,9 +12,9 @@ version: 0.2 2. 使用 \$\SIFBlank\$ 替换横线,对于选择题中的括号使用 \$\\SIFChoice\$ 替换。 -3. 图片 ID 以公式的形式嵌入文本中:`$\\FigureID{ uuid }$` 或用 base64 编码表示,特别的,内容为公式的图片用`$\\FormFigureID{ uuid }$`表示。 +3. 图片 ID 以公式的形式嵌入文本中:``$\\FigureID{ uuid }$`` 或用 base64 编码表示,特别的,内容为公式的图片用``$\\FormFigureID{ uuid }$``表示。 -4. 文本标注格式:统一用 `$\\textf{item,CHAR_EN}$` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\\textf{EduNLP, bi}$ 表示 ***EduNLP*** +4. 文本标注格式:统一用 ``$\\textf{item,CHAR_EN}$`` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\\textf{EduNLP, bi}$ 表示 ***EduNLP*** 5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 `$$` 之中。 @@ -56,20 +56,20 @@ version: 0.2 3. 选空与填空 -4. 对于单个的数字或字符也需要添加 `$$`(目前能实现自动校验) +4. 对于单个的数字或字符也需要添加 ``$$``(目前能实现自动校验) -5. latex 公式中尽量不出现中文:(`\\text{这里出现中文}`) +5. latex 公式中尽量不出现中文:(``\\text{这里出现中文}``) -6. MySql 数据库导入数据时会自动忽略一个 `\`,所以录入的公式需要进一步处理为 `\\` +6. MySql 数据库导入数据时会自动忽略一个 ``\``,所以录入的公式需要进一步处理为 ``\\`` 示例 ----------- 标准形式: -1. `若$x,y$满足约束条件$\\left\\{\\begin{array}{c}2 x+y-2 \\leq 0 \\\\ x-y-1 \\geq 0 \\\\ y+1 \\geq 0\\end{array}\\right.$,则$z=x+7 y$的最大值$\\SIFUnderline$'` +1. ``若$x,y$满足约束条件$\\left\\{\\begin{array}{c}2 x+y-2 \\leq 0 \\\\ x-y-1 \\geq 0 \\\\ y+1 \\geq 0\\end{array}\\right.$,则$z=x+7 y$的最大值$\\SIFUnderline$'`` -2. `已知函数$f(x)=|3 x+1|-2|x|$画出$y=f(x)$的图像求不等式$f(x)>f(x+1)$的解集$\\PictureID{3bf2ddf4-8af1-11eb-b750-b46bfc50aa29}$$\\PictureID{59b8bd14-8af1-11eb-93a5-b46bfc50aa29}$$\\PictureID{63118b3a-8b75-11eb-a5c0-b46bfc50aa29}$$\\PictureID{6a006179-8b76-11eb-b386-b46bfc50aa29}$$\\PictureID{088f15eb-8b7c-11eb-a86f-b46bfc50aa29}$` +2. ``已知函数$f(x)=|3 x+1|-2|x|$画出$y=f(x)$的图像求不等式$f(x)>f(x+1)$的解集$\\PictureID{3bf2ddf4-8af1-11eb-b750-b46bfc50aa29}$$\\PictureID{59b8bd14-8af1-11eb-93a5-b46bfc50aa29}$$\\PictureID{63118b3a-8b75-11eb-a5c0-b46bfc50aa29}$$\\PictureID{6a006179-8b76-11eb-b386-b46bfc50aa29}$$\\PictureID{088f15eb-8b7c-11eb-a86f-b46bfc50aa29}$`` 非标准形式: @@ -77,23 +77,23 @@ version: 0.2 例如: - `完成下面的2x2列联表,` + ``完成下面的2x2列联表,`` - `(单位:m3)` + ``(单位:m3)`` - `则输出的n=` + ``则输出的n=`` 2. 特殊的数学符号没有用 latex 公式表示: 例如: - `命题中真命题的序号是 ①` + ``命题中真命题的序号是 ①`` - `AB是⊙O的直径,AC是⊙O的切线,BC交⊙O于点E.若D为AC的中点` + ``AB是⊙O的直径,AC是⊙O的切线,BC交⊙O于点E.若D为AC的中点`` 3. 出现以 unicode 编码写成的字符 - 例如:`则$a$的取值范围是(\\u3000\\u3000)` + 例如:``则$a$的取值范围是(\u3000\u3000)`` Change Log @@ -111,7 +111,7 @@ Change Log 添加: -1. 注明 `$$` 之中不能出现换行符。 +1. 注明 ``$$`` 之中不能出现换行符。 2. 添加文本标注格式说明。 From 1d4eb0d0db16f8678317f6c8f82ce115f2819b7c Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:34:51 +0800 Subject: [PATCH 19/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 32204843..7a42a262 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -10,13 +10,13 @@ version: 0.2 1. 题目文本中只允许出现中文字符、中英文标点和换行符。 -2. 使用 \$\SIFBlank\$ 替换横线,对于选择题中的括号使用 \$\\SIFChoice\$ 替换。 +2. 使用 \$\SIFBlank\$ 替换横线,对于选择题中的括号使用 \$\SIFChoice\$ 替换。 -3. 图片 ID 以公式的形式嵌入文本中:``$\\FigureID{ uuid }$`` 或用 base64 编码表示,特别的,内容为公式的图片用``$\\FormFigureID{ uuid }$``表示。 +3. 图片 ID 以公式的形式嵌入文本中:``$\FigureID{ uuid }$`` 或用 base64 编码表示,特别的,内容为公式的图片用``$\FormFigureID{ uuid }$``表示。 -4. 文本标注格式:统一用 ``$\\textf{item,CHAR_EN}$`` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\\textf{EduNLP, bi}$ 表示 ***EduNLP*** +4. 文本标注格式:统一用 ``$\textf{item,CHAR_EN}$`` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, bi}$ 表示 ***EduNLP*** -5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 `$$` 之中。 +5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 ``$$`` 之中。 6. 分子式的录入标准暂且参考 `INCHI `_ @@ -25,25 +25,15 @@ version: 0.2 :: 1. Item -> CHARACTER|EN_PUN_LIST|CH_PUN_LIST|FORMULA|QUES_MARK - 2. EN_PUN_LIST -> [',', '.', '?', '!', ':', ';', '\'', '\"', '(', ')', ' ','_','/','|','\\','<','>','[',']','-'] - 3. CH_PUN_LIST -> [',', '。', '!', '?', ':',';', '‘', '’', '“', '”', '(', ')', ' ', '、','《','》','—','.'] - 4. FORMULA -> $latex formula$ | $\FormFigureID{UUID}$ | $\FormFigureBase64{BASE64}$ - 5. FIGURE -> $\FigureID{UUID}$ | $\FigureBase64{BASE64}$ - 6. UUID -> [a-zA-Z\-0-9]+ - 7. CHARACTER -> CHAR_EN | CHAR_CH - 8. CHAR_EN -> [a-zA-Z]+ - 9. CHAR_CH -> [\u4e00-\u9fa5]+ - 10. DIGITAL -> [0-9]+ - 11. QUES_MARK -> $\SIFBlank$ | $\SIFChoice$ From ba1febbd80afc556b023b5b006fdec7cd358a0c7 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:39:54 +0800 Subject: [PATCH 20/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 7a42a262..669308f9 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -93,9 +93,9 @@ Change Log 修改: -1. 原用 \$\\SIFUnderline\$ 和 \$\\SIFBracket\$ 来替换填空题中的横线和选择题中的括号,现分别用 \$\\SIFBlank\$ 和 \$\\SIFChoice\$ 替换。 +1. 原用 \$\SIFUnderline\$ 和 \$\SIFBracket\$ 来替换填空题中的横线和选择题中的括号,现分别用 \$\SIFBlank\$ 和 \$\SIFChoice\$ 替换。 -2. 原统一用`$\\PictureID{ uuid }$`表示图片,现使用`$\\FigureID{ uuid }$`,其中对于数据公式,用`$\\FormFigureID{ uuid }$`来表示。 +2. 原统一用``$\PictureID{ uuid }$``表示图片,现使用``$\FigureID{ uuid }$``,其中对于数据公式,用``$\\FormFigureID{ uuid }$``来表示。 2021-06-28 From ffb6e29101a7cb6ff737948244136346472a5c8d Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:44:45 +0800 Subject: [PATCH 21/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 48 +++++++++++++++------------------ 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 669308f9..a957777a 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -1,12 +1,12 @@ -标准测试项目格式 -===================== +标准项目格式 +=============== version: 0.2 为了后续研究和使用的方便,我们需要一个统一的试题语法标准。 语法规则 -------------- +----------- 1. 题目文本中只允许出现中文字符、中英文标点和换行符。 @@ -16,7 +16,7 @@ version: 0.2 4. 文本标注格式:统一用 ``$\textf{item,CHAR_EN}$`` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, bi}$ 表示 ***EduNLP*** -5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 ``$$`` 之中。 +5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 `$$` 之中。 6. 分子式的录入标准暂且参考 `INCHI `_ @@ -38,7 +38,7 @@ version: 0.2 注意事项 -+++++++++++ ++++++++++++++++ 1. 保留字符与转义 @@ -48,12 +48,12 @@ version: 0.2 4. 对于单个的数字或字符也需要添加 ``$$``(目前能实现自动校验) -5. latex 公式中尽量不出现中文:(``\\text{这里出现中文}``) +5. latex 公式中尽量不出现中文:(``\text{这里出现中文}``) 6. MySql 数据库导入数据时会自动忽略一个 ``\``,所以录入的公式需要进一步处理为 ``\\`` 示例 ------------ +----------------- 标准形式: @@ -65,40 +65,36 @@ version: 0.2 1. 字母、数字和数学符号连续混合出现: - 例如: - - ``完成下面的2x2列联表,`` - - ``(单位:m3)`` - - ``则输出的n=`` - + 例如: + + ``完成下面的2x2列联表,`` + ``(单位:m3)`` + ``则输出的n=`` + 2. 特殊的数学符号没有用 latex 公式表示: - 例如: - - ``命题中真命题的序号是 ①`` - - ``AB是⊙O的直径,AC是⊙O的切线,BC交⊙O于点E.若D为AC的中点`` - + 例如: + + ``命题中真命题的序号是 ①`` + ``AB是⊙O的直径,AC是⊙O的切线,BC交⊙O于点E.若D为AC的中点`` + 3. 出现以 unicode 编码写成的字符 - 例如:``则$a$的取值范围是(\u3000\u3000)`` + 例如:``则$a$的取值范围是(\u3000\u3000)`` Change Log ------------------- +---------------- 2021-05-18 修改: - 1. 原用 \$\SIFUnderline\$ 和 \$\SIFBracket\$ 来替换填空题中的横线和选择题中的括号,现分别用 \$\SIFBlank\$ 和 \$\SIFChoice\$ 替换。 -2. 原统一用``$\PictureID{ uuid }$``表示图片,现使用``$\FigureID{ uuid }$``,其中对于数据公式,用``$\\FormFigureID{ uuid }$``来表示。 +2. 原统一用``$\PictureID{ uuid }$``表示图片,现使用``$\FigureID{ uuid }$``,其中对于数据公式,用``$\FormFigureID{ uuid }$``来表示。 2021-06-28 - + 添加: 1. 注明 ``$$`` 之中不能出现换行符。 From 57c9811be923eb8aeb9b4b778dc4d2962fb95778 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:46:00 +0800 Subject: [PATCH 22/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index a957777a..f07c8989 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -12,11 +12,11 @@ version: 0.2 2. 使用 \$\SIFBlank\$ 替换横线,对于选择题中的括号使用 \$\SIFChoice\$ 替换。 -3. 图片 ID 以公式的形式嵌入文本中:``$\FigureID{ uuid }$`` 或用 base64 编码表示,特别的,内容为公式的图片用``$\FormFigureID{ uuid }$``表示。 +3. 图片 ID 以公式的形式嵌入文本中:``$\FigureID{ uuid }$`` 或用 base64 编码表示,特别的,内容为公式的图片用 ``$\FormFigureID{ uuid }$`` 表示。 4. 文本标注格式:统一用 ``$\textf{item,CHAR_EN}$`` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, bi}$ 表示 ***EduNLP*** -5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 `$$` 之中。 +5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 ``$$`` 之中。 6. 分子式的录入标准暂且参考 `INCHI `_ From d40a5614879a7307e64b590d3ad88c472a4a8f27 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:46:54 +0800 Subject: [PATCH 23/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index f07c8989..74d82b67 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -91,7 +91,7 @@ Change Log 修改: 1. 原用 \$\SIFUnderline\$ 和 \$\SIFBracket\$ 来替换填空题中的横线和选择题中的括号,现分别用 \$\SIFBlank\$ 和 \$\SIFChoice\$ 替换。 -2. 原统一用``$\PictureID{ uuid }$``表示图片,现使用``$\FigureID{ uuid }$``,其中对于数据公式,用``$\FormFigureID{ uuid }$``来表示。 +2. 原统一用 ``$\PictureID{ uuid }$`` 表示图片,现使用 ``$\FigureID{ uuid }$`` ,其中对于数据公式,用 ``$\FormFigureID{ uuid }$`` 来表示。 2021-06-28 From 3c44eb49d9fb7b5510f58b8f6c78787ce7bb5342 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:47:39 +0800 Subject: [PATCH 24/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 74d82b67..7c963d64 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -14,7 +14,7 @@ version: 0.2 3. 图片 ID 以公式的形式嵌入文本中:``$\FigureID{ uuid }$`` 或用 base64 编码表示,特别的,内容为公式的图片用 ``$\FormFigureID{ uuid }$`` 表示。 -4. 文本标注格式:统一用 ``$\textf{item,CHAR_EN}$`` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, bi}$ 表示 ***EduNLP*** +4. 文本标注格式:统一用 ``$\textf{item,CHAR_EN}$`` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, bi}$ 表示 ***EduNLP*** 5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 ``$$`` 之中。 @@ -46,7 +46,7 @@ version: 0.2 3. 选空与填空 -4. 对于单个的数字或字符也需要添加 ``$$``(目前能实现自动校验) +4. 对于单个的数字或字符也需要添加 ``$$`` (目前能实现自动校验) 5. latex 公式中尽量不出现中文:(``\text{这里出现中文}``) From 9ee3a34dc9f72e916dcce3ee3db9db72f204ea2e Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 19:19:29 +0800 Subject: [PATCH 25/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 7c963d64..705e0c7f 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -14,7 +14,7 @@ version: 0.2 3. 图片 ID 以公式的形式嵌入文本中:``$\FigureID{ uuid }$`` 或用 base64 编码表示,特别的,内容为公式的图片用 ``$\FormFigureID{ uuid }$`` 表示。 -4. 文本标注格式:统一用 ``$\textf{item,CHAR_EN}$`` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, bi}$ 表示 ***EduNLP*** +4. 文本标注格式:统一用 ``$\textf{item,CHAR_EN}$`` 表示,目前定义的有:b-加粗,i-斜体,u-下划线,w-下划波浪线,d-加点,t-标题。标注可以混用,按字母顺序排序,例如:$\textf{EduNLP, b}$ 表示 **EduNLP** 5. 其余诸如,英文字母、罗马字符、数字等数学符号一律需要使用 latex 格式表示,即嵌在 ``$$`` 之中。 From 845602430295716835891c3c5400502698e66e02 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 19:23:30 +0800 Subject: [PATCH 26/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 705e0c7f..baae5073 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -89,6 +89,7 @@ Change Log 2021-05-18 修改: + 1. 原用 \$\SIFUnderline\$ 和 \$\SIFBracket\$ 来替换填空题中的横线和选择题中的括号,现分别用 \$\SIFBlank\$ 和 \$\SIFChoice\$ 替换。 2. 原统一用 ``$\PictureID{ uuid }$`` 表示图片,现使用 ``$\FigureID{ uuid }$`` ,其中对于数据公式,用 ``$\FormFigureID{ uuid }$`` 来表示。 From 20aa1332223cde7c3b44a410d61c0e3290db1f35 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 19:29:33 +0800 Subject: [PATCH 27/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index baae5073..36715980 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -57,9 +57,11 @@ version: 0.2 标准形式: -1. ``若$x,y$满足约束条件$\\left\\{\\begin{array}{c}2 x+y-2 \\leq 0 \\\\ x-y-1 \\geq 0 \\\\ y+1 \\geq 0\\end{array}\\right.$,则$z=x+7 y$的最大值$\\SIFUnderline$'`` +:: -2. ``已知函数$f(x)=|3 x+1|-2|x|$画出$y=f(x)$的图像求不等式$f(x)>f(x+1)$的解集$\\PictureID{3bf2ddf4-8af1-11eb-b750-b46bfc50aa29}$$\\PictureID{59b8bd14-8af1-11eb-93a5-b46bfc50aa29}$$\\PictureID{63118b3a-8b75-11eb-a5c0-b46bfc50aa29}$$\\PictureID{6a006179-8b76-11eb-b386-b46bfc50aa29}$$\\PictureID{088f15eb-8b7c-11eb-a86f-b46bfc50aa29}$`` + 1. ``若$x,y$满足约束条件$\\left\\{\\begin{array}{c}2 x+y-2 \\leq 0 \\\\ x-y-1 \\geq 0 \\\\ y+1 \\geq 0\\end{array}\\right.$,则$z=x+7 y$的最大值$\\SIFUnderline$'`` + + 2. ``已知函数$f(x)=|3 x+1|-2|x|$画出$y=f(x)$的图像求不等式$f(x)>f(x+1)$的解集$\\PictureID{3bf2ddf4-8af1-11eb-b750-b46bfc50aa29}$$\\PictureID{59b8bd14-8af1-11eb-93a5-b46bfc50aa29}$$\\PictureID{63118b3a-8b75-11eb-a5c0-b46bfc50aa29}$$\\PictureID{6a006179-8b76-11eb-b386-b46bfc50aa29}$$\\PictureID{088f15eb-8b7c-11eb-a86f-b46bfc50aa29}$`` 非标准形式: From 64898b69785aab5a0fb68214df914bd4233f8672 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 19:34:36 +0800 Subject: [PATCH 28/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 36715980..68b4d0b0 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -57,8 +57,6 @@ version: 0.2 标准形式: -:: - 1. ``若$x,y$满足约束条件$\\left\\{\\begin{array}{c}2 x+y-2 \\leq 0 \\\\ x-y-1 \\geq 0 \\\\ y+1 \\geq 0\\end{array}\\right.$,则$z=x+7 y$的最大值$\\SIFUnderline$'`` 2. ``已知函数$f(x)=|3 x+1|-2|x|$画出$y=f(x)$的图像求不等式$f(x)>f(x+1)$的解集$\\PictureID{3bf2ddf4-8af1-11eb-b750-b46bfc50aa29}$$\\PictureID{59b8bd14-8af1-11eb-93a5-b46bfc50aa29}$$\\PictureID{63118b3a-8b75-11eb-a5c0-b46bfc50aa29}$$\\PictureID{6a006179-8b76-11eb-b386-b46bfc50aa29}$$\\PictureID{088f15eb-8b7c-11eb-a86f-b46bfc50aa29}$`` From 2668cf2b333d83f2014bb37e7283f4afd5edcf50 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 19:39:18 +0800 Subject: [PATCH 29/57] Create sif.rst --- docs/source/tutorial/zh/sif.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/source/tutorial/zh/sif.rst b/docs/source/tutorial/zh/sif.rst index 68b4d0b0..0bb9f2ae 100644 --- a/docs/source/tutorial/zh/sif.rst +++ b/docs/source/tutorial/zh/sif.rst @@ -57,9 +57,11 @@ version: 0.2 标准形式: - 1. ``若$x,y$满足约束条件$\\left\\{\\begin{array}{c}2 x+y-2 \\leq 0 \\\\ x-y-1 \\geq 0 \\\\ y+1 \\geq 0\\end{array}\\right.$,则$z=x+7 y$的最大值$\\SIFUnderline$'`` - - 2. ``已知函数$f(x)=|3 x+1|-2|x|$画出$y=f(x)$的图像求不等式$f(x)>f(x+1)$的解集$\\PictureID{3bf2ddf4-8af1-11eb-b750-b46bfc50aa29}$$\\PictureID{59b8bd14-8af1-11eb-93a5-b46bfc50aa29}$$\\PictureID{63118b3a-8b75-11eb-a5c0-b46bfc50aa29}$$\\PictureID{6a006179-8b76-11eb-b386-b46bfc50aa29}$$\\PictureID{088f15eb-8b7c-11eb-a86f-b46bfc50aa29}$`` +:: + + 1. 若$x,y$满足约束条件$\\left\\{\\begin{array}{c}2 x+y-2 \\leq 0 \\\\ x-y-1 \\geq 0 \\\\ y+1 \\geq 0\\end{array}\\right.$,则$z=x+7 y$的最大值$\\SIFUnderline$' + + 2. 已知函数$f(x)=|3 x+1|-2|x|$画出$y=f(x)$的图像求不等式$f(x)>f(x+1)$的解集$\\PictureID{3bf2ddf4-8af1-11eb-b750-b46bfc50aa29}$$\\PictureID{59b8bd14-8af1-11eb-93a5-b46bfc50aa29}$$\\PictureID{63118b3a-8b75-11eb-a5c0-b46bfc50aa29}$$\\PictureID{6a006179-8b76-11eb-b386-b46bfc50aa29}$$\\PictureID{088f15eb-8b7c-11eb-a86f-b46bfc50aa29}$ 非标准形式: @@ -68,7 +70,9 @@ version: 0.2 例如: ``完成下面的2x2列联表,`` + ``(单位:m3)`` + ``则输出的n=`` 2. 特殊的数学符号没有用 latex 公式表示: @@ -76,6 +80,7 @@ version: 0.2 例如: ``命题中真命题的序号是 ①`` + ``AB是⊙O的直径,AC是⊙O的切线,BC交⊙O于点E.若D为AC的中点`` 3. 出现以 unicode 编码写成的字符 From 98988b9fcf553575c2b6a9a805b57ed89c4853f0 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 19:54:19 +0800 Subject: [PATCH 30/57] Add files via upload --- .../zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" | 1 + "docs/source/tutorial/zh/tokenize/\345\210\206\345\217\245.rst" | 1 + "docs/source/tutorial/zh/tokenize/\345\210\206\350\257\215.rst" | 1 + 3 files changed, 3 insertions(+) create mode 100644 "docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" create mode 100644 "docs/source/tutorial/zh/tokenize/\345\210\206\345\217\245.rst" create mode 100644 "docs/source/tutorial/zh/tokenize/\345\210\206\350\257\215.rst" diff --git "a/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" new file mode 100644 index 00000000..56a6051c --- /dev/null +++ "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git "a/docs/source/tutorial/zh/tokenize/\345\210\206\345\217\245.rst" "b/docs/source/tutorial/zh/tokenize/\345\210\206\345\217\245.rst" new file mode 100644 index 00000000..56a6051c --- /dev/null +++ "b/docs/source/tutorial/zh/tokenize/\345\210\206\345\217\245.rst" @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git "a/docs/source/tutorial/zh/tokenize/\345\210\206\350\257\215.rst" "b/docs/source/tutorial/zh/tokenize/\345\210\206\350\257\215.rst" new file mode 100644 index 00000000..56a6051c --- /dev/null +++ "b/docs/source/tutorial/zh/tokenize/\345\210\206\350\257\215.rst" @@ -0,0 +1 @@ +1 \ No newline at end of file From 90e120bae5132d9993e923deb30a4f85353c4af1 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:06:33 +0800 Subject: [PATCH 31/57] =?UTF-8?q?Create=20=E5=88=86=E8=AF=8D.rst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zh/tokenize/\345\210\206\350\257\215.rst" | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git "a/docs/source/tutorial/zh/tokenize/\345\210\206\350\257\215.rst" "b/docs/source/tutorial/zh/tokenize/\345\210\206\350\257\215.rst" index 56a6051c..ec75b0cd 100644 --- "a/docs/source/tutorial/zh/tokenize/\345\210\206\350\257\215.rst" +++ "b/docs/source/tutorial/zh/tokenize/\345\210\206\350\257\215.rst" @@ -1 +1,36 @@ -1 \ No newline at end of file +分词 +------- + +词解析(text-tokenization):一个句子(不含公式)是由若干“词”按顺序构成的,将一个句子切分为若干词的过程称为“词解析”。根据词的粒度大小,又可细分为“词组解析”和"单字解析"。 + +:: + + - 词组解析 (word-tokenization):每一个词组为一个“令牌”(token)。 + + - 单字解析 (char-tokenization):单个字符即为一个“令牌”(token)。 + + +词解析分为两个主要步骤: + +1. 分词: + + - 词组解析:使用分词工具切分并提取题目文本中的词。本项目目前支持的分词工具有:`jieba` + + - 单字解析:按字符划分。 + +2. 筛选:过滤指定的停用词。 + + 本项目默认使用的停用词表:`[stopwords] `_ + 你也可以使用自己的停用词表,具体使用方法见下面的示例。 + +Examples: + +:: + + >>> text = "三角函数是基本初等函数之一" + >>> tokenize(text, granularity="word") + ['三角函数', '初等', '函数'] + + >>> tokenize(text, granularity="char") + ['三', '角', '函', '数', '基', '初', '函', '数'] + From 6533fd4578d88be003505e28ebf26d0ab962af30 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:07:03 +0800 Subject: [PATCH 32/57] =?UTF-8?q?Create=20=E5=88=86=E5=8F=A5.rst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tutorial/zh/tokenize/\345\210\206\345\217\245.rst" | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git "a/docs/source/tutorial/zh/tokenize/\345\210\206\345\217\245.rst" "b/docs/source/tutorial/zh/tokenize/\345\210\206\345\217\245.rst" index 56a6051c..67cf5679 100644 --- "a/docs/source/tutorial/zh/tokenize/\345\210\206\345\217\245.rst" +++ "b/docs/source/tutorial/zh/tokenize/\345\210\206\345\217\245.rst" @@ -1 +1,4 @@ -1 \ No newline at end of file +分句 +------- + +将较长的文档切分成若干句子的过程称为“分句”。每个句子为一个“令牌”(token)(待实现)。 From ec57a31850e97d19fb9c33ab232d806fb81d47e2 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:08:20 +0800 Subject: [PATCH 33/57] =?UTF-8?q?Create=20=E4=BB=A4=E7=89=8C=E5=8C=96.rst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\344\273\244\347\211\214\345\214\226.rst" | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git "a/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" index 56a6051c..510499cd 100644 --- "a/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" +++ "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" @@ -1 +1,29 @@ -1 \ No newline at end of file +令牌化 +------- +即综合解析,将带公式的句子切分为若干标记的过程。每个标记为一个“令牌”(token)。 +我们提供了多种已经封装好的令牌化器供用户便捷调用,下面是一个示例: + + + Examples + ------------ + >>> items = ["已知集合$A=\\left\\{x \\mid x^{2}-3 x-4<0\\right\\}, \\quad B=\\{-4,1,3,5\\}, \\quad$ 则 $A \\cap B=$"] + >>> tokenizer = TextTokenizer() + >>> tokens = tokenizer(items) + >>> next(tokens) # doctest: +NORMALIZE_WHITESPACE + ['已知', '集合', 'A', '=', '\\left', '\\{', 'x', '\\mid', 'x', '^', '{', '2', '}', '-', '3', 'x', '-', '4', '<', + '0', '\\right', '\\}', ',', '\\quad', 'B', '=', '\\{', '-', '4', ',', '1', ',', '3', ',', '5', '\\}', ',', + '\\quad', 'A', '\\cap', 'B', '='] + + + + + +通过查看"./EduNLP/Tokenizer/tokenizer.py"及"./EduNLP/Pretrain/gensim_vec.py"可以查看更多令牌化器,下面是一个完整的令牌化器列表 + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + tokenization/TextTokenizer + tokenization/GensimSegTokenizer + tokenization/GensimWordTokenizer From f964054ec5bef214a805076ef5980aad04108088 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:08:45 +0800 Subject: [PATCH 34/57] =?UTF-8?q?Create=20=E4=BB=A4=E7=89=8C=E5=8C=96.rst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" | 3 --- 1 file changed, 3 deletions(-) diff --git "a/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" index 510499cd..120ebc37 100644 --- "a/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" +++ "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" @@ -3,7 +3,6 @@ 即综合解析,将带公式的句子切分为若干标记的过程。每个标记为一个“令牌”(token)。 我们提供了多种已经封装好的令牌化器供用户便捷调用,下面是一个示例: - Examples ------------ >>> items = ["已知集合$A=\\left\\{x \\mid x^{2}-3 x-4<0\\right\\}, \\quad B=\\{-4,1,3,5\\}, \\quad$ 则 $A \\cap B=$"] @@ -16,8 +15,6 @@ - - 通过查看"./EduNLP/Tokenizer/tokenizer.py"及"./EduNLP/Pretrain/gensim_vec.py"可以查看更多令牌化器,下面是一个完整的令牌化器列表 .. toctree:: From 824fe9293d988fb6bf7138780de6ac9d9639dcae Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:09:16 +0800 Subject: [PATCH 35/57] =?UTF-8?q?Create=20=E4=BB=A4=E7=89=8C=E5=8C=96.rst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git "a/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" index 120ebc37..928d3acc 100644 --- "a/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" +++ "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" @@ -3,8 +3,10 @@ 即综合解析,将带公式的句子切分为若干标记的过程。每个标记为一个“令牌”(token)。 我们提供了多种已经封装好的令牌化器供用户便捷调用,下面是一个示例: - Examples - ------------ +Examples + +:: + >>> items = ["已知集合$A=\\left\\{x \\mid x^{2}-3 x-4<0\\right\\}, \\quad B=\\{-4,1,3,5\\}, \\quad$ 则 $A \\cap B=$"] >>> tokenizer = TextTokenizer() >>> tokens = tokenizer(items) From fad5a721cbf9e6b0df501db4359b64867d335337 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:10:09 +0800 Subject: [PATCH 36/57] =?UTF-8?q?Create=20=E4=BB=A4=E7=89=8C=E5=8C=96.rst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" index 928d3acc..9782bece 100644 --- "a/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" +++ "b/docs/source/tutorial/zh/tokenize/\344\273\244\347\211\214\345\214\226.rst" @@ -23,6 +23,6 @@ Examples :maxdepth: 1 :titlesonly: - tokenization/TextTokenizer - tokenization/GensimSegTokenizer - tokenization/GensimWordTokenizer + ../tokenization/TextTokenizer + ../tokenization/GensimSegTokenizer + ../tokenization/GensimWordTokenizer From 415b2640c04f7ea68ecf085ad66f610c27b12521 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:11:58 +0800 Subject: [PATCH 37/57] Create tokenize.rst --- docs/source/tutorial/zh/tokenize.rst | 81 ++++------------------------ 1 file changed, 10 insertions(+), 71 deletions(-) diff --git a/docs/source/tutorial/zh/tokenize.rst b/docs/source/tutorial/zh/tokenize.rst index 83a9e8e4..0ba90ad0 100644 --- a/docs/source/tutorial/zh/tokenize.rst +++ b/docs/source/tutorial/zh/tokenize.rst @@ -10,80 +10,19 @@ * 资源级别:令牌化 -分词 -------- +本模块提供题目文本的令牌化解析(Tokenization),将题目转换成令牌序列,方便后续向量化表征试题。 -词解析(text-tokenization):一个句子(不含公式)是由若干“词”按顺序构成的,将一个句子切分为若干词的过程称为“词解析”。根据词的粒度大小,又可细分为“词组解析”和"单字解析"。 - -:: - - - 词组解析 (word-tokenization):每一个词组为一个“令牌”(token)。 - - - 单字解析 (char-tokenization):单个字符即为一个“令牌”(token)。 - - -词解析分为两个主要步骤: - -1. 分词: - - - 词组解析:使用分词工具切分并提取题目文本中的词。本项目目前支持的分词工具有:`jieba` - - - 单字解析:按字符划分。 - -2. 筛选:过滤指定的停用词。 - - 本项目默认使用的停用词表:`[stopwords] `_ - 你也可以使用自己的停用词表,具体使用方法见下面的示例。 - -Examples: - -:: - - >>> text = "三角函数是基本初等函数之一" - >>> tokenize(text, granularity="word") - ['三角函数', '初等', '函数'] - - >>> tokenize(text, granularity="char") - ['三', '角', '函', '数', '基', '初', '函', '数'] - - -对切片后的item中的各个元素进行分词,提供深度选项,可以按照需求选择所有地方切分或者在部分标签处切分(比如\SIFSep、\SIFTag处);对标签添加的位置也可以进行选择,可以在头尾处添加或仅在头或尾处添加。 +在进入此模块前需要先后将item经过 :doc:`语法解析 `和 :doc:`成分分解 ` 处理,之后对切片后的item中的各个元素进行分词,提供深度选项,可以按照需求选择所有地方切分或者在部分标签处切分(比如\SIFSep、\SIFTag处);对标签添加的位置也可以进行选择,可以在头尾处添加或仅在头或尾处添加。 具有两种模式,一种是linear模式,用于对文本进行处理(使用jieba库进行分词);一种是ast模式,用于对公式进行解析。 -分句 -------- - -将较长的文档切分成若干句子的过程称为“分句”。每个句子为一个“令牌”(token)(待实现)。 - - -令牌化 -------- -即综合解析,将带公式的句子切分为若干标记的过程。每个标记为一个“令牌”(token)。 -我们提供了多种已经封装好的令牌化器供用户便捷调用,下面是一个示例: - - - Examples - ------------ - >>> items = ["已知集合$A=\\left\\{x \\mid x^{2}-3 x-4<0\\right\\}, \\quad B=\\{-4,1,3,5\\}, \\quad$ 则 $A \\cap B=$"] - >>> tokenizer = TextTokenizer() - >>> tokens = tokenizer(items) - >>> next(tokens) # doctest: +NORMALIZE_WHITESPACE - ['已知', '集合', 'A', '=', '\\left', '\\{', 'x', '\\mid', 'x', '^', '{', '2', '}', '-', '3', 'x', '-', '4', '<', - '0', '\\right', '\\}', ',', '\\quad', 'B', '=', '\\{', '-', '4', ',', '1', ',', '3', ',', '5', '\\}', ',', - '\\quad', 'A', '\\cap', 'B', '='] - - - - - -通过查看"./EduNLP/Tokenizer/tokenizer.py"及"./EduNLP/Pretrain/gensim_vec.py"可以查看更多令牌化器,下面是一个完整的令牌化器列表 +学习路线图 +-------------------- .. toctree:: - :maxdepth: 1 - :titlesonly: - - tokenization/TextTokenizer - tokenization/GensimSegTokenizer - tokenization/GensimWordTokenizer - + :maxdepth: 1 + :titlesonly: + + 分词 + 分句 + 令牌化 From 8011eb45eb2e2e4f2e06c1d1d260c01d8411ccd4 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:12:42 +0800 Subject: [PATCH 38/57] Create tokenize.rst --- docs/source/tutorial/zh/tokenize.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/tokenize.rst b/docs/source/tutorial/zh/tokenize.rst index 0ba90ad0..e4aa393d 100644 --- a/docs/source/tutorial/zh/tokenize.rst +++ b/docs/source/tutorial/zh/tokenize.rst @@ -12,7 +12,7 @@ 本模块提供题目文本的令牌化解析(Tokenization),将题目转换成令牌序列,方便后续向量化表征试题。 -在进入此模块前需要先后将item经过 :doc:`语法解析 `和 :doc:`成分分解 ` 处理,之后对切片后的item中的各个元素进行分词,提供深度选项,可以按照需求选择所有地方切分或者在部分标签处切分(比如\SIFSep、\SIFTag处);对标签添加的位置也可以进行选择,可以在头尾处添加或仅在头或尾处添加。 +在进入此模块前需要先后将item经过 `语法解析 `_ 和 `成分分解 `_ 处理,之后对切片后的item中的各个元素进行分词,提供深度选项,可以按照需求选择所有地方切分或者在部分标签处切分(比如\SIFSep、\SIFTag处);对标签添加的位置也可以进行选择,可以在头尾处添加或仅在头或尾处添加。 具有两种模式,一种是linear模式,用于对文本进行处理(使用jieba库进行分词);一种是ast模式,用于对公式进行解析。 From 7f7d05fec68fd20a0020d4c6cf392c995d32058a Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:13:34 +0800 Subject: [PATCH 39/57] Create tokenize.rst --- docs/source/tutorial/zh/tokenize.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/tokenize.rst b/docs/source/tutorial/zh/tokenize.rst index e4aa393d..ce719757 100644 --- a/docs/source/tutorial/zh/tokenize.rst +++ b/docs/source/tutorial/zh/tokenize.rst @@ -12,7 +12,7 @@ 本模块提供题目文本的令牌化解析(Tokenization),将题目转换成令牌序列,方便后续向量化表征试题。 -在进入此模块前需要先后将item经过 `语法解析 `_ 和 `成分分解 `_ 处理,之后对切片后的item中的各个元素进行分词,提供深度选项,可以按照需求选择所有地方切分或者在部分标签处切分(比如\SIFSep、\SIFTag处);对标签添加的位置也可以进行选择,可以在头尾处添加或仅在头或尾处添加。 +在进入此模块前需要先后将item经过 `语法解析 `_ 和 `成分分解 `_ 处理,之后对切片后的item中的各个元素进行分词,提供深度选项,可以按照需求选择所有地方切分或者在部分标签处切分(比如\SIFSep、\SIFTag处);对标签添加的位置也可以进行选择,可以在头尾处添加或仅在头或尾处添加。 具有两种模式,一种是linear模式,用于对文本进行处理(使用jieba库进行分词);一种是ast模式,用于对公式进行解析。 From 7677c942fd4c24cd9f42b0f9d71b3d749f2d5e61 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:22:00 +0800 Subject: [PATCH 40/57] Add files via upload --- ...\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" | 1 + ...\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" | 1 + 2 files changed, 2 insertions(+) create mode 100644 "docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" create mode 100644 "docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" diff --git "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" new file mode 100644 index 00000000..56a6051c --- /dev/null +++ "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" new file mode 100644 index 00000000..56a6051c --- /dev/null +++ "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" @@ -0,0 +1 @@ +1 \ No newline at end of file From b4fc76841472962bf2a4bfca43acd2f30223f3b7 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:23:08 +0800 Subject: [PATCH 41/57] =?UTF-8?q?Create=20=E4=B8=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=A2=84=E8=AE=AD=E7=BB=83=E6=A8=A1=E5=9E=8B.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\347\273\203\346\250\241\345\236\213.txt" | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" index 56a6051c..f60f0c42 100644 --- "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" +++ "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" @@ -1 +1,23 @@ -1 \ No newline at end of file +不使用预训练模型:直接调用D2V +------------------------------------ + +使用自己提供的任一预训练模型(给出模型存放路径即可)将给定的题目文本转成向量。 + + +* 优点:可以使用自己的模型,另可调整训练参数,灵活性强。 + + +处理的具体流程 +++++++++++++++++++++ + +1.调用get_tokenizer函数,得到经过分词后的结果; + +2.调用T2V模块,根据需要选择是否使用预训练的t2v模型 + +Examples: + +:: + + >>> model_path = "../test_model/test_gensim_luna_stem_tf_d2v_256.bin" + >>> i2v = D2V("text","d2v",filepath=model_path, pretrained_t2v = False) + >>> i2v(item) From 5feda19c62b89f36f47a01ce65aab4e62ca16b47 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:23:21 +0800 Subject: [PATCH 42/57] =?UTF-8?q?Create=20=E4=B8=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=A2=84=E8=AE=AD=E7=BB=83=E6=A8=A1=E5=9E=8B.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" | 1 - 1 file changed, 1 deletion(-) diff --git "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" index f60f0c42..5a26588f 100644 --- "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" +++ "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" @@ -3,7 +3,6 @@ 使用自己提供的任一预训练模型(给出模型存放路径即可)将给定的题目文本转成向量。 - * 优点:可以使用自己的模型,另可调整训练参数,灵活性强。 From a32a7cd61fd54e8e7871b7e432d7db4010cc702e Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:24:26 +0800 Subject: [PATCH 43/57] =?UTF-8?q?Create=20=E4=BD=BF=E7=94=A8=E9=A2=84?= =?UTF-8?q?=E8=AE=AD=E7=BB=83=E6=A8=A1=E5=9E=8B.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\347\273\203\346\250\241\345\236\213.txt" | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" index 56a6051c..93d7a00b 100644 --- "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" +++ "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" @@ -1 +1,41 @@ -1 \ No newline at end of file +使用预训练模型:直接调用get_pretrained_i2v +--------------------------------------------- + +使用 EduNLP 项目组给定的预训练模型将给定的题目文本转成向量。 + +* 优点:简单方便。 + +* 缺点:只能使用项目中给定的模型,局限性较大。 + +* 调用此函数即可获得相应的预训练模型,目前提供以下的预训练模型:d2v_all_256、d2v_sci_256、d2v_eng_256、d2v_lit_256 + +模型选择与使用 +################## + +根据题目所属学科选择预训练模型: + ++--------------------+------------------------+ +| 预训练模型名称 | 模型训练数据的所属学科 | ++====================+========================+ +| d2v_all_256 | 全学科 | ++--------------------+------------------------+ +| d2v_sci_256 | 理科 | ++--------------------+------------------------+ +| d2v_lit_256 | 文科 | ++--------------------+------------------------+ +| d2v_eng_256 | 英语 | ++--------------------+------------------------+ + +处理的具体流程 +################## + +1.下载相应的预处理模型 + +2.将所得到的模型传入D2V,使用D2V进行处理 + +Examples: + +:: + + >>> i2v = get_pretrained_i2v("d2v_sci_256") + >>> i2v(item) From e81970604e2d1ed84ee3778f2389e709ed850a46 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:26:50 +0800 Subject: [PATCH 44/57] Delete docs/source/tutorial/zh/vectorization directory --- ...5\347\273\203\346\250\241\345\236\213.txt" | 22 ---------- ...5\347\273\203\346\250\241\345\236\213.txt" | 41 ------------------- 2 files changed, 63 deletions(-) delete mode 100644 "docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" delete mode 100644 "docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" diff --git "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" deleted file mode 100644 index 5a26588f..00000000 --- "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" +++ /dev/null @@ -1,22 +0,0 @@ -不使用预训练模型:直接调用D2V ------------------------------------- - -使用自己提供的任一预训练模型(给出模型存放路径即可)将给定的题目文本转成向量。 - -* 优点:可以使用自己的模型,另可调整训练参数,灵活性强。 - - -处理的具体流程 -++++++++++++++++++++ - -1.调用get_tokenizer函数,得到经过分词后的结果; - -2.调用T2V模块,根据需要选择是否使用预训练的t2v模型 - -Examples: - -:: - - >>> model_path = "../test_model/test_gensim_luna_stem_tf_d2v_256.bin" - >>> i2v = D2V("text","d2v",filepath=model_path, pretrained_t2v = False) - >>> i2v(item) diff --git "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" deleted file mode 100644 index 93d7a00b..00000000 --- "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.txt" +++ /dev/null @@ -1,41 +0,0 @@ -使用预训练模型:直接调用get_pretrained_i2v ---------------------------------------------- - -使用 EduNLP 项目组给定的预训练模型将给定的题目文本转成向量。 - -* 优点:简单方便。 - -* 缺点:只能使用项目中给定的模型,局限性较大。 - -* 调用此函数即可获得相应的预训练模型,目前提供以下的预训练模型:d2v_all_256、d2v_sci_256、d2v_eng_256、d2v_lit_256 - -模型选择与使用 -################## - -根据题目所属学科选择预训练模型: - -+--------------------+------------------------+ -| 预训练模型名称 | 模型训练数据的所属学科 | -+====================+========================+ -| d2v_all_256 | 全学科 | -+--------------------+------------------------+ -| d2v_sci_256 | 理科 | -+--------------------+------------------------+ -| d2v_lit_256 | 文科 | -+--------------------+------------------------+ -| d2v_eng_256 | 英语 | -+--------------------+------------------------+ - -处理的具体流程 -################## - -1.下载相应的预处理模型 - -2.将所得到的模型传入D2V,使用D2V进行处理 - -Examples: - -:: - - >>> i2v = get_pretrained_i2v("d2v_sci_256") - >>> i2v(item) From 96e2799388c0ae0405bf28b0c6a1c30724329052 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sat, 21 Aug 2021 21:27:08 +0800 Subject: [PATCH 45/57] Add files via upload --- ...5\347\273\203\346\250\241\345\236\213.rst" | 22 ++++++++++ ...5\347\273\203\346\250\241\345\236\213.rst" | 41 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 "docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" create mode 100644 "docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" diff --git "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" new file mode 100644 index 00000000..a8e04c02 --- /dev/null +++ "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" @@ -0,0 +1,22 @@ +ʹԤѵģ:ֱӵD2V +------------------------------------ + +ʹԼṩһԤѵģͣģʹ·ɣĿıת + +* ŵ㣺ʹԼģͣɵѵǿ + + +ľ +++++++++++++++++++++ + +1.get_tokenizerõִʺĽ + +2.T2Vģ飬ҪѡǷʹԤѵt2vģ + +Examples + +:: + + >>> model_path = "../test_model/test_gensim_luna_stem_tf_d2v_256.bin" + >>> i2v = D2V("text","d2v",filepath=model_path, pretrained_t2v = False) + >>> i2v(item) diff --git "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" new file mode 100644 index 00000000..944a9ed0 --- /dev/null +++ "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" @@ -0,0 +1,41 @@ +ʹԤѵģֱͣӵget_pretrained_i2v +--------------------------------------------- + +ʹ EduNLP ĿԤѵģͽĿıת + +* ŵ㣺򵥷㡣 + +* ȱ㣺ֻʹĿиģͣԽϴ + +* ô˺ɻӦԤѵģͣĿǰṩµԤѵģͣd2v_all_256d2v_sci_256d2v_eng_256d2v_lit_256 + +ģѡʹ +################## + +ĿѧѡԤѵģͣ + ++--------------------+------------------------+ +| Ԥѵģ | ģѵݵѧ | ++====================+========================+ +| d2v_all_256 | ȫѧ | ++--------------------+------------------------+ +| d2v_sci_256 | | ++--------------------+------------------------+ +| d2v_lit_256 | Ŀ | ++--------------------+------------------------+ +| d2v_eng_256 | Ӣ | ++--------------------+------------------------+ + +ľ +################## + +1.ӦԤģ + +2.õģʹD2VʹD2Vд + +Examples + +:: + + >>> i2v = get_pretrained_i2v("d2v_sci_256") + >>> i2v(item) From b96e1e20cc618d447098ae271a7d709dad85c00e Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:15:41 +0800 Subject: [PATCH 46/57] Create vectorization.rst --- docs/source/tutorial/zh/vectorization.rst | 84 ++--------------------- 1 file changed, 7 insertions(+), 77 deletions(-) diff --git a/docs/source/tutorial/zh/vectorization.rst b/docs/source/tutorial/zh/vectorization.rst index 26d8fd16..0dfc9898 100644 --- a/docs/source/tutorial/zh/vectorization.rst +++ b/docs/source/tutorial/zh/vectorization.rst @@ -3,94 +3,24 @@ 此部分提供了简便的接口,可以直接将传入的items经过转化得到向量。当前提供了是否使用预训练模型的选项,可根据需要进行选择,如不使用预训练模型则可直接调用D2V函数,使用预训练模型则调用get_pretrained_i2v函数。 - 总体流程 --------------------------- 1.对传入的item进行解析,得到SIF格式; - 2.对sif_item进行成分分解; - 3.对经过成分分解的item进行令牌化; - 4.使用已有或者使用提供的预训练模型,将令牌化后的item转换为向量。 +学习路线图 +--------------------------- -不使用预训练模型:直接调用D2V ------------------------------------- - -使用自己提供的任一预训练模型(给出模型存放路径即可)将给定的题目文本转成向量。 - - -* 优点:可以使用自己的模型,另可调整训练参数,灵活性强。 - - -处理的具体流程 - - -1.调用get_tokenizer函数,得到经过分词后的结果; - - -2.调用T2V模块,根据需要选择是否使用预训练的t2v模型 - -Examples: - -:: - - >>> model_path = "../test_model/test_gensim_luna_stem_tf_d2v_256.bin" - >>> i2v = D2V("text","d2v",filepath=model_path, pretrained_t2v = False) - >>> i2v(item) - -使用预训练模型:直接调用get_pretrained_i2v ---------------------------------------------- - -使用 EduNLP 项目组给定的预训练模型将给定的题目文本转成向量。 - - -* 优点:简单方便。 - - -* 缺点:只能使用项目中给定的模型,局限性较大。 - - -* 调用此函数即可获得相应的预训练模型,目前提供以下的预训练模型:d2v_all_256、d2v_sci_256、d2v_eng_256、d2v_lit_256 - -模型选择与使用 -################## - -根据题目所属学科选择预训练模型: - - - -+--------------------+------------------------+ -| 预训练模型名称 | 模型训练数据的所属学科 | -+====================+========================+ -| d2v_all_256 | 全学科 | -+--------------------+------------------------+ -| d2v_sci_256 | 理科 | -+--------------------+------------------------+ -| d2v_lit_256 | 文科 | -+--------------------+------------------------+ -| d2v_eng_256 | 英语 | -+--------------------+------------------------+ - - - - -处理的具体流程: - -1.下载相应的预处理模型 - - -2.将所得到的模型传入D2V,使用D2V进行处理 - -Examples: - -:: +.. toctree:: + :maxdepth: 1 + :titlesonly: - >>> i2v = get_pretrained_i2v("d2v_sci_256") - >>> i2v(item) + 文本语法结构解析 + 公式语法结构解析 From a9e444eb6ba7fc07a256386c78c3db2cab44f589 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:18:15 +0800 Subject: [PATCH 47/57] Add files via upload --- docs/source/tutorial/zh/pretrain/loading.rst | 1 + docs/source/tutorial/zh/pretrain/pub.rst | 1 + docs/source/tutorial/zh/pretrain/start.rst | 1 + 3 files changed, 3 insertions(+) create mode 100644 docs/source/tutorial/zh/pretrain/loading.rst create mode 100644 docs/source/tutorial/zh/pretrain/pub.rst create mode 100644 docs/source/tutorial/zh/pretrain/start.rst diff --git a/docs/source/tutorial/zh/pretrain/loading.rst b/docs/source/tutorial/zh/pretrain/loading.rst new file mode 100644 index 00000000..56a6051c --- /dev/null +++ b/docs/source/tutorial/zh/pretrain/loading.rst @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/docs/source/tutorial/zh/pretrain/pub.rst b/docs/source/tutorial/zh/pretrain/pub.rst new file mode 100644 index 00000000..56a6051c --- /dev/null +++ b/docs/source/tutorial/zh/pretrain/pub.rst @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/docs/source/tutorial/zh/pretrain/start.rst b/docs/source/tutorial/zh/pretrain/start.rst new file mode 100644 index 00000000..56a6051c --- /dev/null +++ b/docs/source/tutorial/zh/pretrain/start.rst @@ -0,0 +1 @@ +1 \ No newline at end of file From 68bddc060b5f43fe1983aeb91939340f6bb7e776 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:22:03 +0800 Subject: [PATCH 48/57] Create start.rst --- docs/source/tutorial/zh/pretrain/start.rst | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/pretrain/start.rst b/docs/source/tutorial/zh/pretrain/start.rst index 56a6051c..96db936c 100644 --- a/docs/source/tutorial/zh/pretrain/start.rst +++ b/docs/source/tutorial/zh/pretrain/start.rst @@ -1 +1,22 @@ -1 \ No newline at end of file +训练模型 +--------- + +基本步骤 +################## + +1.确定模型的类型,选择适合的Tokenizer(GensimWordTokenizer、 GensimSegTokenizer),使之令牌化; + +2.调用train_vector函数,即可得到所需的预训练模型。 + +Examples: + +:: + + >>> tokenizer = GensimWordTokenizer(symbol="gmas", general=True) + >>> token_item = tokenizer("有公式$\\FormFigureID{wrong1?}$,如图$\\FigureID{088f15ea-xxx}$,\ + ... 若$x,y$满足约束条件公式$\\FormFigureBase64{wrong2?}$,$\\SIFSep$,则$z=x+7 y$的最大值为$\\SIFBlank$") + >>> print(token_item.tokens[:10]) + ['公式', '[FORMULA]', '如图', '[FIGURE]', 'x', ',', 'y', '约束条件', '公式', '[FORMULA]'] + + # 10 dimension with fasstext method + train_vector(sif_items, "../../../data/w2v/gensim_luna_stem_tf_", 10, method="d2v") From 2f9cc0c2592fa71311ca934bd9de118b5f90b619 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:22:56 +0800 Subject: [PATCH 49/57] Create loading.rst --- docs/source/tutorial/zh/pretrain/loading.rst | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/pretrain/loading.rst b/docs/source/tutorial/zh/pretrain/loading.rst index 56a6051c..d930674b 100644 --- a/docs/source/tutorial/zh/pretrain/loading.rst +++ b/docs/source/tutorial/zh/pretrain/loading.rst @@ -1 +1,11 @@ -1 \ No newline at end of file +装载模型 +-------- + +将所得到的模型传入I2V模块即可装载模型 + +Examples: + +:: + + >>> model_path = "../test_model/test_gensim_luna_stem_tf_d2v_256.bin" + >>> i2v = D2V("text","d2v",filepath=model_path, pretrained_t2v = False) From b6101abb65d3b25ce1d168d0d1520a1260fd2c5b Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:24:17 +0800 Subject: [PATCH 50/57] Create pub.rst --- docs/source/tutorial/zh/pretrain/pub.rst | 86 +++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/docs/source/tutorial/zh/pretrain/pub.rst b/docs/source/tutorial/zh/pretrain/pub.rst index 56a6051c..3139910f 100644 --- a/docs/source/tutorial/zh/pretrain/pub.rst +++ b/docs/source/tutorial/zh/pretrain/pub.rst @@ -1 +1,85 @@ -1 \ No newline at end of file +公开模型一览 +------------ + +版本说明 +################## + +一级版本 + +* 公开版本1(luna_pub):高考 +* 公开版本2( luna_pub_large):高考 + 地区试题 + +二级版本: + +* 小科(Chinese,Math,English,History,Geography,Politics,Biology,Physics,Chemistry) +* 大科(理科science、文科literal、全科all) + +三级版本:【待完成】 + +* 不使用第三方初始化词表 +* 使用第三方初始化词表 + + + +模型命名规则:一级版本 + 二级版本 + gensim_luna_stem + 分词规则 + 模型方法 + 维度 + +Examples: + +:: + + 全量版本-全学科的D2V模型路径: + `/share/qlh/d2v_model/luna_pub/luna_pub_all_gensim_luna_stem_general_d2v_256.bin` + (备注:一个D2V模型含4个bin后缀的文件) + +模型训练数据说明 +################## + +* 当前【词向量w2v】【句向量d2v】模型所用的数据均为 【高中学段】 的题目 +* 测试数据:`[OpenLUNA.json] `_ + +当前提供以下模型,更多分学科、分题型模型正在训练中,敬请期待 + "d2v_all_256"(全科),"d2v_sci_256"(理科),"d2v_eng_256"(文科),"d2v_lit_256"(英语) + +模型训练案例 +------------ + +获得数据集 +#################### + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + prepare_dataset <../../../build/blitz/pretrain/prepare_dataset.ipynb> + +gensim模型d2v例子 +#################### + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + d2v_bow_tfidf <../../../build/blitz/pretrain/gensim/d2v_bow_tfidf.ipynb> + d2v_general <../../../build/blitz/pretrain/gensim/d2v_general.ipynb> + d2v_stem_tf <../../../build/blitz/pretrain/gensim/d2v_stem_tf.ipynb> + +gensim模型w2v例子 +#################### + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + w2v_stem_text <../../../build/blitz/pretrain/gensim/w2v_stem_text.ipynb> + w2v_stem_tf <../../../build/blitz/pretrain/gensim/w2v_stem_tf.ipynb> + +seg_token例子 +#################### + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + d2v.ipynb <../../../build/blitz/pretrain/seg_token/d2v.ipynb> + d2v_d1 <../../../build/blitz/pretrain/seg_token/d2v_d1.ipynb> + d2v_d2 <../../../build/blitz/pretrain/seg_token/d2v_d2.ipynb> From c392a82af17c0b81f1b3eb93f672679b8f323b36 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:26:15 +0800 Subject: [PATCH 51/57] Create pretrain.rst --- docs/source/tutorial/zh/pretrain.rst | 122 ++------------------------- 1 file changed, 5 insertions(+), 117 deletions(-) diff --git a/docs/source/tutorial/zh/pretrain.rst b/docs/source/tutorial/zh/pretrain.rst index bcc737ce..477717a4 100644 --- a/docs/source/tutorial/zh/pretrain.rst +++ b/docs/source/tutorial/zh/pretrain.rst @@ -8,125 +8,13 @@ * 如何加载预训练模型 * 公开的预训练模型 - -训练模型 ---------- - -基本步骤 -################## - -1.确定模型的类型,选择适合的Tokenizer(GensimWordTokenizer、 GensimSegTokenizer),使之令牌化; - -2.调用train_vector函数,即可得到所需的预训练模型。 - -Examples: - -:: - - >>> tokenizer = GensimWordTokenizer(symbol="gmas", general=True) - >>> token_item = tokenizer("有公式$\\FormFigureID{wrong1?}$,如图$\\FigureID{088f15ea-xxx}$,\ - ... 若$x,y$满足约束条件公式$\\FormFigureBase64{wrong2?}$,$\\SIFSep$,则$z=x+7 y$的最大值为$\\SIFBlank$") - >>> print(token_item.tokens[:10]) - ['公式', '[FORMULA]', '如图', '[FIGURE]', 'x', ',', 'y', '约束条件', '公式', '[FORMULA]'] - - # 10 dimension with fasstext method - train_vector(sif_items, "../../../data/w2v/gensim_luna_stem_tf_", 10, method="d2v") - -装载模型 --------- - -将所得到的模型传入I2V模块即可装载模型 - -Examples: - -:: - - >>> model_path = "../test_model/test_gensim_luna_stem_tf_d2v_256.bin" - >>> i2v = D2V("text","d2v",filepath=model_path, pretrained_t2v = False) - - -公开模型一览 ------------- - -版本说明 -################## - -一级版本 - -* 公开版本1(luna_pub):高考 -* 公开版本2( luna_pub_large):高考 + 地区试题 - -二级版本: - -* 小科(Chinese,Math,English,History,Geography,Politics,Biology,Physics,Chemistry) -* 大科(理科science、文科literal、全科all) - -三级版本:【待完成】 - -* 不使用第三方初始化词表 -* 使用第三方初始化词表 - - - -模型命名规则:一级版本 + 二级版本 + gensim_luna_stem + 分词规则 + 模型方法 + 维度 - -Examples: - -:: - - 全量版本-全学科的D2V模型路径: - `/share/qlh/d2v_model/luna_pub/luna_pub_all_gensim_luna_stem_general_d2v_256.bin` - (备注:一个D2V模型含4个bin后缀的文件) - -模型训练数据说明 -################## - -* 当前【词向量w2v】【句向量d2v】模型所用的数据均为 【高中学段】 的题目 -* 测试数据:`[OpenLUNA.json] `_ - -当前提供以下模型,更多分学科、分题型模型正在训练中,敬请期待 - "d2v_all_256"(全科),"d2v_sci_256"(理科),"d2v_eng_256"(文科),"d2v_lit_256"(英语) - -模型训练案例 ------------- - -获得数据集 -#################### - -.. toctree:: - :maxdepth: 1 - :titlesonly: - - prepare_dataset <../../build/blitz/pretrain/prepare_dataset.ipynb> - -gensim模型d2v例子 -#################### - -.. toctree:: - :maxdepth: 1 - :titlesonly: - - d2v_bow_tfidf <../../build/blitz/pretrain/gensim/d2v_bow_tfidf.ipynb> - d2v_general <../../build/blitz/pretrain/gensim/d2v_general.ipynb> - d2v_stem_tf <../../build/blitz/pretrain/gensim/d2v_stem_tf.ipynb> - -gensim模型w2v例子 -#################### - -.. toctree:: - :maxdepth: 1 - :titlesonly: - - w2v_stem_text <../../build/blitz/pretrain/gensim/w2v_stem_text.ipynb> - w2v_stem_tf <../../build/blitz/pretrain/gensim/w2v_stem_tf.ipynb> - -seg_token例子 -#################### +学习路线图 +------------------ .. toctree:: :maxdepth: 1 :titlesonly: - d2v.ipynb <../../build/blitz/pretrain/seg_token/d2v.ipynb> - d2v_d1 <../../build/blitz/pretrain/seg_token/d2v_d1.ipynb> - d2v_d2 <../../build/blitz/pretrain/seg_token/d2v_d2.ipynb> + 训练模型 + 装载模型 + 公开模型一览 From 1a363f65019a88f321711bb6b7ed0674eab99190 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:33:08 +0800 Subject: [PATCH 52/57] Create vectorization.rst --- docs/source/tutorial/zh/vectorization.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/tutorial/zh/vectorization.rst b/docs/source/tutorial/zh/vectorization.rst index 0dfc9898..ebc0f5c0 100644 --- a/docs/source/tutorial/zh/vectorization.rst +++ b/docs/source/tutorial/zh/vectorization.rst @@ -21,6 +21,6 @@ :maxdepth: 1 :titlesonly: - 文本语法结构解析 - 公式语法结构解析 + 不使用预训练模型.rst + 使用预训练模型.rst From b42145fba99034f9f9a8078b07d5488b15aba211 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:38:42 +0800 Subject: [PATCH 53/57] Create vectorization.rst --- docs/source/tutorial/zh/vectorization.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/tutorial/zh/vectorization.rst b/docs/source/tutorial/zh/vectorization.rst index ebc0f5c0..c3161bad 100644 --- a/docs/source/tutorial/zh/vectorization.rst +++ b/docs/source/tutorial/zh/vectorization.rst @@ -21,6 +21,6 @@ :maxdepth: 1 :titlesonly: - 不使用预训练模型.rst - 使用预训练模型.rst + 不使用预训练模型 + 使用预训练模型 From 11468731d2d4e2f88ce19d68dc689f847ac66fdc Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:47:49 +0800 Subject: [PATCH 54/57] Delete docs/source/tutorial/zh/vectorization directory --- ...5\347\273\203\346\250\241\345\236\213.rst" | 22 ---------- ...5\347\273\203\346\250\241\345\236\213.rst" | 41 ------------------- 2 files changed, 63 deletions(-) delete mode 100644 "docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" delete mode 100644 "docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" diff --git "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" deleted file mode 100644 index a8e04c02..00000000 --- "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" +++ /dev/null @@ -1,22 +0,0 @@ -ʹԤѵģ:ֱӵD2V ------------------------------------- - -ʹԼṩһԤѵģͣģʹ·ɣĿıת - -* ŵ㣺ʹԼģͣɵѵǿ - - -ľ -++++++++++++++++++++ - -1.get_tokenizerõִʺĽ - -2.T2Vģ飬ҪѡǷʹԤѵt2vģ - -Examples - -:: - - >>> model_path = "../test_model/test_gensim_luna_stem_tf_d2v_256.bin" - >>> i2v = D2V("text","d2v",filepath=model_path, pretrained_t2v = False) - >>> i2v(item) diff --git "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" deleted file mode 100644 index 944a9ed0..00000000 --- "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" +++ /dev/null @@ -1,41 +0,0 @@ -ʹԤѵģֱͣӵget_pretrained_i2v ---------------------------------------------- - -ʹ EduNLP ĿԤѵģͽĿıת - -* ŵ㣺򵥷㡣 - -* ȱ㣺ֻʹĿиģͣԽϴ - -* ô˺ɻӦԤѵģͣĿǰṩµԤѵģͣd2v_all_256d2v_sci_256d2v_eng_256d2v_lit_256 - -ģѡʹ -################## - -ĿѧѡԤѵģͣ - -+--------------------+------------------------+ -| Ԥѵģ | ģѵݵѧ | -+====================+========================+ -| d2v_all_256 | ȫѧ | -+--------------------+------------------------+ -| d2v_sci_256 | | -+--------------------+------------------------+ -| d2v_lit_256 | Ŀ | -+--------------------+------------------------+ -| d2v_eng_256 | Ӣ | -+--------------------+------------------------+ - -ľ -################## - -1.ӦԤģ - -2.õģʹD2VʹD2Vд - -Examples - -:: - - >>> i2v = get_pretrained_i2v("d2v_sci_256") - >>> i2v(item) From 22bcdbbd0c424d07c822157d899b8e23ddfe79c9 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:48:10 +0800 Subject: [PATCH 55/57] Add files via upload --- ...5\347\273\203\346\250\241\345\236\213.rst" | 22 ++++++++++ ...5\347\273\203\346\250\241\345\236\213.rst" | 41 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 "docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" create mode 100644 "docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" diff --git "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" new file mode 100644 index 00000000..a8e04c02 --- /dev/null +++ "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" @@ -0,0 +1,22 @@ +ʹԤѵģ:ֱӵD2V +------------------------------------ + +ʹԼṩһԤѵģͣģʹ·ɣĿıת + +* ŵ㣺ʹԼģͣɵѵǿ + + +ľ +++++++++++++++++++++ + +1.get_tokenizerõִʺĽ + +2.T2Vģ飬ҪѡǷʹԤѵt2vģ + +Examples + +:: + + >>> model_path = "../test_model/test_gensim_luna_stem_tf_d2v_256.bin" + >>> i2v = D2V("text","d2v",filepath=model_path, pretrained_t2v = False) + >>> i2v(item) diff --git "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" new file mode 100644 index 00000000..944a9ed0 --- /dev/null +++ "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" @@ -0,0 +1,41 @@ +ʹԤѵģֱͣӵget_pretrained_i2v +--------------------------------------------- + +ʹ EduNLP ĿԤѵģͽĿıת + +* ŵ㣺򵥷㡣 + +* ȱ㣺ֻʹĿиģͣԽϴ + +* ô˺ɻӦԤѵģͣĿǰṩµԤѵģͣd2v_all_256d2v_sci_256d2v_eng_256d2v_lit_256 + +ģѡʹ +################## + +ĿѧѡԤѵģͣ + ++--------------------+------------------------+ +| Ԥѵģ | ģѵݵѧ | ++====================+========================+ +| d2v_all_256 | ȫѧ | ++--------------------+------------------------+ +| d2v_sci_256 | | ++--------------------+------------------------+ +| d2v_lit_256 | Ŀ | ++--------------------+------------------------+ +| d2v_eng_256 | Ӣ | ++--------------------+------------------------+ + +ľ +################## + +1.ӦԤģ + +2.õģʹD2VʹD2Vд + +Examples + +:: + + >>> i2v = get_pretrained_i2v("d2v_sci_256") + >>> i2v(item) From a2af455f945b0920580544d0b45f9d4fbc579031 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:50:04 +0800 Subject: [PATCH 56/57] =?UTF-8?q?Create=20=E4=B8=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=A2=84=E8=AE=AD=E7=BB=83=E6=A8=A1=E5=9E=8B.rst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...56\255\347\273\203\346\250\241\345\236\213.rst" | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" index a8e04c02..5a26588f 100644 --- "a/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" +++ "b/docs/source/tutorial/zh/vectorization/\344\270\215\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" @@ -1,19 +1,19 @@ -ʹԤѵģ:ֱӵD2V +不使用预训练模型:直接调用D2V ------------------------------------ -ʹԼṩһԤѵģͣģʹ·ɣĿıת +使用自己提供的任一预训练模型(给出模型存放路径即可)将给定的题目文本转成向量。 -* ŵ㣺ʹԼģͣɵѵǿ +* 优点:可以使用自己的模型,另可调整训练参数,灵活性强。 -ľ +处理的具体流程 ++++++++++++++++++++ -1.get_tokenizerõִʺĽ +1.调用get_tokenizer函数,得到经过分词后的结果; -2.T2Vģ飬ҪѡǷʹԤѵt2vģ +2.调用T2V模块,根据需要选择是否使用预训练的t2v模型 -Examples +Examples: :: From 958a0e21c11cc792558ad7e8e3c7344a9ba2ead7 Mon Sep 17 00:00:00 2001 From: BAOOOOOM <82091145+BAOOOOOM@users.noreply.github.com> Date: Sun, 22 Aug 2021 02:50:31 +0800 Subject: [PATCH 57/57] =?UTF-8?q?Create=20=E4=BD=BF=E7=94=A8=E9=A2=84?= =?UTF-8?q?=E8=AE=AD=E7=BB=83=E6=A8=A1=E5=9E=8B.rst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\347\273\203\346\250\241\345\236\213.rst" | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" index 944a9ed0..93d7a00b 100644 --- "a/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" +++ "b/docs/source/tutorial/zh/vectorization/\344\275\277\347\224\250\351\242\204\350\256\255\347\273\203\346\250\241\345\236\213.rst" @@ -1,39 +1,39 @@ -ʹԤѵģֱͣӵget_pretrained_i2v +使用预训练模型:直接调用get_pretrained_i2v --------------------------------------------- -ʹ EduNLP ĿԤѵģͽĿıת +使用 EduNLP 项目组给定的预训练模型将给定的题目文本转成向量。 -* ŵ㣺򵥷㡣 +* 优点:简单方便。 -* ȱ㣺ֻʹĿиģͣԽϴ +* 缺点:只能使用项目中给定的模型,局限性较大。 -* ô˺ɻӦԤѵģͣĿǰṩµԤѵģͣd2v_all_256d2v_sci_256d2v_eng_256d2v_lit_256 +* 调用此函数即可获得相应的预训练模型,目前提供以下的预训练模型:d2v_all_256、d2v_sci_256、d2v_eng_256、d2v_lit_256 -ģѡʹ +模型选择与使用 ################## -ĿѧѡԤѵģͣ +根据题目所属学科选择预训练模型: +--------------------+------------------------+ -| Ԥѵģ | ģѵݵѧ | +| 预训练模型名称 | 模型训练数据的所属学科 | +====================+========================+ -| d2v_all_256 | ȫѧ | +| d2v_all_256 | 全学科 | +--------------------+------------------------+ -| d2v_sci_256 | | +| d2v_sci_256 | 理科 | +--------------------+------------------------+ -| d2v_lit_256 | Ŀ | +| d2v_lit_256 | 文科 | +--------------------+------------------------+ -| d2v_eng_256 | Ӣ | +| d2v_eng_256 | 英语 | +--------------------+------------------------+ -ľ +处理的具体流程 ################## -1.ӦԤģ +1.下载相应的预处理模型 -2.õģʹD2VʹD2Vд +2.将所得到的模型传入D2V,使用D2V进行处理 -Examples +Examples: ::