Skip to content

Commit 16ca646

Browse files
Auto-update blog content
1 parent d55b275 commit 16ca646

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+15248
-0
lines changed
Lines changed: 233 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
---
2+
layout: post
3+
title: "自然语言处理预训练06子词嵌入"
4+
date: 2025-11-10T09:00:00+0800
5+
description: "本文讲解自然语言处理预训练的子词嵌入。fastText模型用子词嵌入处理词变形,子词为字符n-gram,词向量由子词向量相加得到。字节对编码是压缩算法,能提取可变长度子词,通过迭代合并频繁符号对生成新符号,用于自然语言处理预训练模型输入表示。"
6+
keywords: "fasttext"
7+
categories: ['未分类']
8+
tags: ['自然语言处理', '深度学习', '子词嵌入', '人工智能', 'Pytorch']
9+
artid: "154619412"
10+
arturl: "https://blog.csdn.net/Morse_Chen/article/details/154619412"
11+
image:
12+
path: https://api.vvhan.com/api/bing?rand=sj&artid=154619412
13+
alt: "自然语言处理预训练06子词嵌入"
14+
render_with_liquid: false
15+
featuredImage: https://bing.ee123.net/img/rand?artid=154619412
16+
featuredImagePreview: https://bing.ee123.net/img/rand?artid=154619412
17+
cover: https://bing.ee123.net/img/rand?artid=154619412
18+
img: https://bing.ee123.net/img/rand?artid=154619412
19+
---
20+
21+
22+
23+
# 【自然语言处理】预训练06:子词嵌入
24+
25+
26+
27+
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/884c69c7065c4ca58ce77cc4068d7cff.gif#pic_center)
28+
29+
> 【作者主页】[Francek Chen](https://blog.csdn.net/Morse_Chen?type=blog)
30+
> 【专栏介绍】[
31+
>
32+
> ⌈PyTorch深度学习
33+
>
34+
>
35+
> ](https://blog.csdn.net/morse_chen/category_12803271.html) 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重要的技术特征是具有自动提取特征的能力。神经网络算法、算力和数据是开展深度学习的三要素。深度学习在计算机视觉、自然语言处理、多模态数据分析、科学探索等领域都取得了很多成果。本专栏介绍基于PyTorch的深度学习算法实现。
36+
> 【GitCode】专栏资源保存在我的GitCode仓库:<https://gitcode.com/Morse_Chen/PyTorch_deep_learning>
37+
38+
---
39+
40+
  在英语中,“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同,“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西班牙语等其他语言中,许多动词有40多种变形形式,而在芬兰语中,名词最多可能有15种变形。在语言学中,形态学研究单词形成和词汇关系。但是,word2vec和GloVe都没有对词的内部结构进行探讨。
41+
42+
### 一、fastText模型
43+
44+
  回想一下词在word2vec中是如何表示的。在跳元模型和连续词袋模型中,同一词的不同变形形式直接由不同的向量表示,不需要共享参数。为了使用形态信息,*fastText模型*提出了一种*子词嵌入*方法,其中子词是一个字符
45+
n
46+
n
47+
n-gram。fastText可以被认为是子词级跳元模型,而非学习词级向量表示,其中每个*中心词*由其子词级向量之和表示。
48+
49+
  让我们来说明如何以单词“where”为例获得fastText中每个中心词的子词。首先,在词的开头和末尾添加特殊字符“<”和“>”,以将前缀和后缀与其他子词区分开来。然后,从词中提取字符
50+
n
51+
n
52+
n-gram。例如,值
53+
n
54+
=
55+
3
56+
n=3
57+
n=3时,我们将获得长度为3的所有子词:“<wh”“whe”“her”“ere”“re>”和特殊子词“<where>”。
58+
59+
  在fastText中,对于任意词
60+
w
61+
w
62+
w,用
63+
G
64+
w
65+
\mathcal{G}_w
66+
Gw​表示其长度在3和6之间的所有子词与其特殊子词的并集。词表是所有词的子词的集合。假设
67+
z
68+
g
69+
\mathbf{z}_g
70+
zg​是词典中的子词
71+
g
72+
g
73+
g的向量,则跳元模型中作为中心词的词
74+
w
75+
w
76+
w的向量
77+
v
78+
w
79+
\mathbf{v}_w
80+
vw​是其子词向量的和:
81+
82+
v
83+
w
84+
=
85+
86+
g
87+
88+
G
89+
w
90+
z
91+
g
92+
(1)
93+
\mathbf{v}_w = \sum_{g\in\mathcal{G}_w} \mathbf{z}_g \tag{1}
94+
vw​=g∈Gw​∑​zg​(1)
95+
96+
  fastText的其余部分与跳元模型相同。与跳元模型相比,fastText的词量更大,模型参数也更多。此外,为了计算一个词的表示,它的所有子词向量都必须求和,这导致了更高的计算复杂度。然而,由于具有相似结构的词之间共享来自子词的参数,罕见词甚至词表外的词在fastText中可能获得更好的向量表示。
97+
98+
### 二、字节对编码
99+
100+
  在fastText中,所有提取的子词都必须是指定的长度,例如
101+
3
102+
3
103+
3到
104+
6
105+
6
106+
6,因此词表大小不能预定义。为了在固定大小的词表中允许可变长度的子词,我们可以应用一种称为*字节对编码*(Byte Pair Encoding,BPE)的压缩算法来提取子词。
107+
108+
  字节对编码执行训练数据集的统计分析,以发现单词内的公共符号,诸如任意长度的连续字符。从长度为1的符号开始,字节对编码迭代地合并最频繁的连续符号对以产生新的更长的符号。请注意,为提高效率,不考虑跨越单词边界的对。最后,我们可以使用像子词这样的符号来切分单词。字节对编码及其变体已经用于诸如GPT-2和RoBERTa等自然语言处理预训练模型中的输入表示。在下面,我们将说明字节对编码是如何工作的。
109+
110+
  首先,我们将符号词表初始化为所有英文小写字符、特殊的词尾符号`'_'`和特殊的未知符号`'[UNK]'`
111+
112+
```python
113+
import collections
114+
115+
symbols = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
116+
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
117+
'_', '[UNK]']
118+
119+
```
120+
121+
  因为我们不考虑跨越词边界的符号对,所以我们只需要一个字典`raw_token_freqs`将词映射到数据集中的频率(出现次数)。注意,特殊符号`'_'`被附加到每个词的尾部,以便我们可以容易地从输出符号序列(例如,“a_all er_man”)恢复单词序列(例如,“a_all er_man”)。由于我们仅从单个字符和特殊符号的词开始合并处理,所以在每个词(词典`token_freqs`的键)内的每对连续字符之间插入空格。换句话说,空格是词中符号之间的分隔符。
122+
123+
```python
124+
raw_token_freqs = {'fast_': 4, 'faster_': 3, 'tall_': 5, 'taller_': 4}
125+
token_freqs = {}
126+
for token, freq in raw_token_freqs.items():
127+
token_freqs[' '.join(list(token))] = raw_token_freqs[token]
128+
token_freqs
129+
130+
```
131+
132+
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/86cb324e59c74bf683eee485910f9c7c.png)
133+
134+
  我们定义以下`get_max_freq_pair`函数,其返回词内最频繁的连续符号对,其中词来自输入词典`token_freqs`的键。
135+
136+
```python
137+
def get_max_freq_pair(token_freqs):
138+
pairs = collections.defaultdict(int)
139+
for token, freq in token_freqs.items():
140+
symbols = token.split()
141+
for i in range(len(symbols) - 1):
142+
# “pairs”的键是两个连续符号的元组
143+
pairs[symbols[i], symbols[i + 1]] += freq
144+
return max(pairs, key=pairs.get) # 具有最大值的“pairs”键
145+
146+
```
147+
148+
  作为基于连续符号频率的贪心方法,字节对编码将使用以下`merge_symbols`函数来合并最频繁的连续符号对以产生新符号。
149+
150+
```python
151+
def merge_symbols(max_freq_pair, token_freqs, symbols):
152+
symbols.append(''.join(max_freq_pair))
153+
new_token_freqs = dict()
154+
for token, freq in token_freqs.items():
155+
new_token = token.replace(' '.join(max_freq_pair),
156+
''.join(max_freq_pair))
157+
new_token_freqs[new_token] = token_freqs[token]
158+
return new_token_freqs
159+
160+
```
161+
162+
  现在,我们对词典`token_freqs`的键迭代地执行字节对编码算法。在第一次迭代中,最频繁的连续符号对是`'t'``'a'`,因此字节对编码将它们合并以产生新符号`'ta'`。在第二次迭代中,字节对编码继续合并`'ta'``'l'`以产生另一个新符号`'tal'`
163+
164+
```python
165+
num_merges = 10
166+
for i in range(num_merges):
167+
max_freq_pair = get_max_freq_pair(token_freqs)
168+
token_freqs = merge_symbols(max_freq_pair, token_freqs, symbols)
169+
print(f'合并# {i+1}:',max_freq_pair)
170+
171+
```
172+
173+
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/022061f400dd4292b71479ae89f586ab.png)
174+
175+
  在字节对编码的10次迭代之后,我们可以看到列表`symbols`现在又包含10个从其他符号迭代合并而来的符号。
176+
177+
```python
178+
print(symbols)
179+
180+
```
181+
182+
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/20d41604f21940c9900d612b1be9585c.png)
183+
184+
  对于在词典`raw_token_freqs`的键中指定的同一数据集,作为字节对编码算法的结果,数据集中的每个词现在被子词“fast_”“fast”“er_”“tall_”和“tall”分割。例如,单词“fast er_”和“tall er_”分别被分割为“fast er_”和“tall er_”。
185+
186+
```python
187+
print(list(token_freqs.keys()))
188+
189+
```
190+
191+
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/95fd3497737b4ce085a1998a12f72dae.png)
192+
193+
  请注意,字节对编码的结果取决于正在使用的数据集。我们还可以使用从一个数据集学习的子词来切分另一个数据集的单词。作为一种贪心方法,下面的`segment_BPE`函数尝试将单词从输入参数`symbols`分成可能最长的子词。
194+
195+
```python
196+
def segment_BPE(tokens, symbols):
197+
outputs = []
198+
for token in tokens:
199+
start, end = 0, len(token)
200+
cur_output = []
201+
# 具有符号中可能最长子字的词元段
202+
while start < len(token) and start < end:
203+
if token[start: end] in symbols:
204+
cur_output.append(token[start: end])
205+
start = end
206+
end = len(token)
207+
else:
208+
end -= 1
209+
if start < len(token):
210+
cur_output.append('[UNK]')
211+
outputs.append(' '.join(cur_output))
212+
return outputs
213+
214+
```
215+
216+
  我们使用列表`symbols`中的子词(从前面提到的数据集学习)来表示另一个数据集的`tokens`
217+
218+
```python
219+
tokens = ['tallest_', 'fatter_']
220+
print(segment_BPE(tokens, symbols))
221+
222+
```
223+
224+
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ca4487243c09402e9d796caba721e4e9.png)
225+
226+
### 小结
227+
228+
* fastText模型提出了一种子词嵌入方法:基于word2vec中的跳元模型,它将中心词表示为其子词向量之和。
229+
* 字节对编码执行训练数据集的统计分析,以发现词内的公共符号。作为一种贪心方法,字节对编码迭代地合并最频繁的连续符号对。
230+
* 子词嵌入可以提高稀有词和词典外词的表示质量。
231+
232+
233+
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
layout: post
3+
title: "IDEA的Code-Style配置使用google的Java-Code-Stytle,git提交优化import"
4+
date: 2025-11-10T23:45:11+0800
5+
description: "官网:下载。"
6+
keywords: "IDEA的Code Style配置(使用google的Java Code Stytle),git提交优化import"
7+
categories: ['未分类']
8+
tags: ['Java', 'Idea', 'Ide']
9+
artid: "154664421"
10+
arturl: "https://blog.csdn.net/2403_82497315/article/details/154664421"
11+
image:
12+
path: https://api.vvhan.com/api/bing?rand=sj&artid=154664421
13+
alt: "IDEA的Code-Style配置使用google的Java-Code-Stytle,git提交优化import"
14+
render_with_liquid: false
15+
featuredImage: https://bing.ee123.net/img/rand?artid=154664421
16+
featuredImagePreview: https://bing.ee123.net/img/rand?artid=154664421
17+
cover: https://bing.ee123.net/img/rand?artid=154664421
18+
img: https://bing.ee123.net/img/rand?artid=154664421
19+
---
20+
21+
22+
23+
# IDEA的Code Style配置(使用google的Java Code Stytle),git提交优化import
24+
25+
![](https://i-operation.csdnimg.cn/images/cf31225e169b4512917b2e77694eb0a2.png)IDEA配置Google Java代码风格
26+
27+
## 参考
28+
29+
[Intellij IDEA 配置 Code Style - 星朝 - 博客园](https://www.cnblogs.com/jpfss/p/11643110.html "Intellij IDEA 配置 Code Style - 星朝 - 博客园")
30+
31+
## 下载google-style
32+
33+
官网:
34+
35+
[styleguide/intellij-java-google-style.xml at gh-pages · google/styleguide](https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml "styleguide/intellij-java-google-style.xml at gh-pages · google/styleguide")
36+
37+
下载
38+
39+
![](https://i-blog.csdnimg.cn/direct/f3afa0de579e4571af366fc93f78b503.png)
40+
41+
## 导入
42+
43+
![](https://i-blog.csdnimg.cn/direct/15b8ef1580be4b03a1734e1152c77b2e.png)
44+
45+
## 优化import
46+
47+
不然有些包被删了 maven找不到
48+
49+
所以CI/CD跑失败了
50+
51+
点的alibaba code guidelines是下载的插件
52+
53+
![](https://i-blog.csdnimg.cn/direct/12793b2d9cca47fb9b9b00caee0c78a8.png)
54+
55+
56+
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
layout: post
3+
title: "管综考研199管理类联考真题试卷及答案解析PDF电子版2009-2025年"
4+
date: 2025-11-11T09:25:49+0800
5+
description: "今天给大家整理了最新的2009-2025年考研管理类联考。通过夸克网盘分享的文件:「考研199管综真题及答案(2009-2025年)」合能力考试(199)历年真题及答案解析,PDF高清电子版,可下载打印。合能力考试(199)真题试卷及答案解析.pdf。合能力考试(199)真题试卷及答案解析.pdf。合能力考试(199)真题试卷及答案解析.pdf。合能力考试(199)真题试卷及答案解析.pdf。合能力考试(199)真题试卷及答案解析.pdf。2025年考研管理类联考。2025年考研管理类联考。"
6+
keywords: "管综199答案下载"
7+
categories: ['未分类']
8+
tags: ['考研', 'Pdf']
9+
artid: "154679345"
10+
arturl: "https://blog.csdn.net/weixin_55690020/article/details/154679345"
11+
image:
12+
path: https://api.vvhan.com/api/bing?rand=sj&artid=154679345
13+
alt: "管综考研199管理类联考真题试卷及答案解析PDF电子版2009-2025年"
14+
render_with_liquid: false
15+
featuredImage: https://bing.ee123.net/img/rand?artid=154679345
16+
featuredImagePreview: https://bing.ee123.net/img/rand?artid=154679345
17+
cover: https://bing.ee123.net/img/rand?artid=154679345
18+
img: https://bing.ee123.net/img/rand?artid=154679345
19+
---
20+
21+
22+
23+
# 【管综】考研199管理类联考真题试卷及答案解析PDF电子版(2009-2025年)
24+
25+
2026年全国硕士研究生招生考试即于12月20日至21日举行。今天给大家整理了最新的2009-2025年考研管理类联考**合能力考试(199)历年真题及答案解析,PDF高清电子版,可下载打印。
26+
27+
| | |
28+
| --- | --- |
29+
| | |
30+
31+
## **真题下载链接**
32+
33+
通过夸克网盘分享的文件:「考研199管综真题及答案(2009-2025年)」
34+
35+
链接:**https://pan.quark.cn/s/788898b48b0f**
36+
37+
**复制以上链接打开「夸克」APP,即可下载**
38+
39+
![](https://i-blog.csdnimg.cn/img_convert/5f5d19dd4a6d237e95fcc67df77c7f90.png)
40+
41+
包含内容:
42+
43+
2025年考研管理类联考**合能力考试(199)真题试卷及答案解析.pdf
44+
45+
2025年考研管理类联考**合能力考试(199)真题试卷及答案解析.pdf
46+
47+
2023年考研管理类联考**合能力考试(199)真题试卷及答案解析.pdf
48+
49+
2022年考研管理类联考**合能力考试(199)真题试卷及答案解析.pdf
50+
51+
......
52+
53+
2009年考研管理类联考**合能力考试(199)真题试卷及答案解析.pdf
54+
55+
考研管理类联考答题.pdf
56+
57+
| | |
58+
| --- | --- |
59+
| | |
60+
| | |
61+
62+
2025年管综作文题
63+
64+
57.论说文:根据下述材料,写一篇 700 字左右的论说文,题目自拟。
65+
66+
通常情况下,人们都希望被他人认可被社会承认。这种心理会促使他们去接受某种评价标准。因为只有接受了标准并身体力行,他们才能被社会肯定,否则便会被认为不合群。
67+
68+
分析:这道 2025 年管综作文题的材料核心是:**人们渴望被认可,因此会主动接受社会的评价标准,并努力去符合这些标准,否则就可能被视为“异类”或“不合群”。**
69+
70+
**立意方向:**
71+
72+
**一、正向立意:社会认同促进个人成长。**
73+
74+
**二、反向立意:过度迎合导致个性丧失。**
75+
76+
**三、辩证立意:在社会认同与自我坚持之间求平衡。**
77+
78+
79+

0 commit comments

Comments
 (0)