├── README.md
├── train_again.py
├── train.py
├── wiki_to_txt.py
├── segment.py
├── LICENSE.txt
├── demo.py
├── demo_visual.py
├── ch.py
└── jieba_dict
└── stopwords_zh.txt
/README.md:
--------------------------------------------------------------------------------
1 | # word2vec
2 | 基于维基百科语料,使用 gensim 的 word2vec 来训练词向量
3 |
4 |
5 | + [如何简单地训练词向量](http://frendy.vip/machine-learning/2017/05/11/word2vec-on-zhwiki.html)
6 | + [如何简单地展示数据结果](http://frendy.vip/machine-learning/2017/05/12/data-visualization-with-matplotlib.html)
--------------------------------------------------------------------------------
/train_again.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from gensim.models import word2vec
4 | import logging
5 |
6 | def main():
7 |
8 | logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
9 |
10 | sentences = word2vec.Text8Corpus("wiki_seg.txt")
11 | model = word2vec.Word2Vec.load('wiki.zh.model')
12 | model.train(sentences, total_examples = model.corpus_count, epochs=model.iter)
13 | model.save('wiki.zh.model')
14 |
15 | if __name__ == "__main__":
16 | main()
17 |
--------------------------------------------------------------------------------
/train.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from gensim.models import word2vec
4 | import logging
5 |
6 | def main():
7 |
8 | logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
9 |
10 | sentences = word2vec.Text8Corpus("wiki_seg.txt")
11 | model = word2vec.Word2Vec(sentences, size=260)
12 | # ## save model 1
13 | # model.save_word2vec_format(u"wiki.zh.model.bin", binary=True)
14 | # ## save model 2
15 | model.save('wiki.zh.model')
16 |
17 | # ## load model 1
18 | # model = word2vec.Word2Vec.load_word2vec_format("wiki.zh.model.bin", binary=True)
19 | # ## load model 2
20 | # model = word2vec.Word2Vec.load('wiki.zh.model')
21 |
22 | if __name__ == "__main__":
23 | main()
24 |
--------------------------------------------------------------------------------
/wiki_to_txt.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | import logging
3 | import sys
4 | import io
5 |
6 | from gensim.corpora import WikiCorpus
7 |
8 | def main():
9 |
10 | if len(sys.argv) != 2:
11 | print("Usage: python " + sys.argv[0] + " wiki_data_path")
12 | exit()
13 |
14 | logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
15 |
16 | wiki_corpus = WikiCorpus(sys.argv[1], dictionary={})
17 | texts_num = 0
18 |
19 | with io.open("wiki_texts.txt", 'w', encoding='utf-8') as output:
20 | for text in wiki_corpus.get_texts():
21 | output.write(b' '.join(text).decode('utf-8') + '\n')
22 | texts_num += 1
23 | if texts_num % 10000 == 0:
24 | logging.info("已处理 %d 篇文章" % texts_num)
25 |
26 | if __name__ == "__main__":
27 | main()
28 |
--------------------------------------------------------------------------------
/segment.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import jieba
4 | import logging
5 | import io
6 |
7 | def main():
8 |
9 | logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
10 |
11 | # load stopwords set
12 | stopwordset = set()
13 | with io.open('jieba_dict/stopwords_zh.txt','r',encoding='utf-8') as sw:
14 | for line in sw:
15 | stopwordset.add(line.strip('\n'))
16 |
17 | texts_num = 0
18 |
19 | output = io.open('wiki_seg.txt','w',encoding='utf-8')
20 | with io.open('wiki_texts_zh.txt','r',encoding='utf-8') as content :
21 | for line in content:
22 | words = jieba.cut(line, cut_all=False)
23 | for word in words:
24 | if word not in stopwordset:
25 | output.write(word +' ')
26 |
27 | texts_num += 1
28 | if texts_num % 10000 == 0:
29 | logging.info("分词已完成前 %d 行" % texts_num)
30 | output.close()
31 |
32 | if __name__ == '__main__':
33 | main()
34 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017 frendy - Released under The MIT License.
2 |
3 | Permission is hereby granted, free of charge, to any person
4 | obtaining a copy of this software and associated documentation
5 | files (the "Software"), to deal in the Software without
6 | restriction, including without limitation the rights to use,
7 | copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the
9 | Software is furnished to do so, subject to the following
10 | conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/demo.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | import sys
3 | reload(sys)
4 | sys.setdefaultencoding('utf-8')
5 | import ch
6 | # 避免 windows 下中文乱码
7 | ch.utf8writer_register()
8 |
9 | from gensim.models import word2vec
10 | from gensim import models
11 | import logging
12 |
13 | def main():
14 | logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
15 |
16 | # model = models.Word2Vec.load_word2vec_format('wiki.zh.model.bin',binary=True)
17 | model = word2vec.Word2Vec.load('wiki.zh.model')
18 |
19 | print("提供 3 种测试模式")
20 | print("输入一个词,则去寻找前二十个该词的相似词")
21 | print("输入两个词,则去计算两个词的余弦相似度")
22 | print("输入三个词,进行类比推理")
23 |
24 | while True:
25 | query = raw_input("请输入: ")
26 | query = query #.decode('utf-8')
27 | q_list = query.split()
28 | try:
29 | if len(q_list) == 1:
30 | print("相似词前 20 排序")
31 | res = model.most_similar(q_list[0], topn = 20)
32 | for item in res:
33 | print(item[0]+","+str(item[1]))
34 |
35 | elif len(q_list) == 2:
36 | print("计算 Cosine 相似度")
37 | res = model.similarity(q_list[0], q_list[1])
38 | print(res)
39 |
40 | else:
41 | print("%s之于%s,如%s之于" % (q_list[0], q_list[2], q_list[1]))
42 | res = model.most_similar([q_list[0], q_list[1]], [q_list[2]], topn = 20)
43 | for item in res:
44 | print(item[0]+","+str(item[1]))
45 |
46 | print("----------------------------")
47 | except Exception as e:
48 | print(repr(e))
49 |
50 |
51 | if __name__ == "__main__":
52 | main()
53 |
--------------------------------------------------------------------------------
/demo_visual.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | import sys
3 | reload(sys)
4 | sys.setdefaultencoding('utf-8')
5 | import ch
6 | # 避免 windows 下中文乱码
7 | ch.utf8writer_register()
8 | # 避免图像注释中文乱码
9 | ch.set_ch()
10 |
11 | from gensim.models import word2vec
12 | from gensim import models
13 | import logging
14 |
15 | from sklearn.decomposition import PCA
16 | import matplotlib.pyplot as plt
17 | from mpl_toolkits.mplot3d import Axes3D
18 | from mpl_toolkits.mplot3d import proj3d
19 |
20 | def main():
21 | logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
22 |
23 | # model = models.Word2Vec.load_word2vec_format('wiki.zh.model.bin',binary=True)
24 | model = word2vec.Word2Vec.load('wiki.zh.model')
25 |
26 | print("提供 3 种测试模式")
27 | print("输入一个词,则去寻找前二十个该词的相似词")
28 | print("输入两个词,则去计算两个词的余弦相似度")
29 | print("输入三个词,进行类比推理")
30 |
31 | while True:
32 | query = raw_input("请输入: ")
33 | query = query #.decode('utf-8')
34 | q_list = query.split()
35 | try:
36 | if len(q_list) == 1:
37 | print("相似词前 20 排序")
38 | res = model.most_similar(q_list[0], topn = 20)
39 | for item in res:
40 | print(item[0]+","+str(item[1]))
41 |
42 | elif len(q_list) == 2:
43 | print("计算 Cosine 相似度")
44 | res = model.similarity(q_list[0], q_list[1])
45 | print(res)
46 |
47 | else:
48 | print("%s之于%s,如%s之于" % (q_list[0], q_list[2], q_list[1]))
49 | res = model.most_similar([q_list[0], q_list[1]], [q_list[2]], topn = 20)
50 | for item in res:
51 | print(item[0]+","+str(item[1]))
52 |
53 | # 可视化
54 | visualize(model, q_list)
55 | visualize_3d(model, q_list)
56 | print("----------------------------")
57 | except Exception as e:
58 | print(repr(e))
59 |
60 |
61 | def visualize(model, word):
62 | """
63 | 根据输入的词搜索邻近词然后可视化展示 2D
64 | 参数:
65 | model: Word2Vec 模型
66 | word: 词汇列表
67 | """
68 |
69 | # 找出最相似的多个词
70 | words = [wp[0] for wp in model.most_similar(word, topn=50)]
71 |
72 | # 提取出词对应的词向量
73 | wordsInVector = [model[word] for word in words]
74 |
75 | # 进行 PCA 降维
76 | pca = PCA(n_components=2)
77 | pca.fit(wordsInVector)
78 | X = pca.transform(wordsInVector)
79 |
80 | # 绘制图形
81 | xs = X[:, 0]
82 | ys = X[:, 1]
83 |
84 | plt.figure(figsize=(10, 6))
85 | plt.scatter(xs, ys, marker='o')
86 |
87 | # 遍历所有的词添加点注释
88 | for i, w in enumerate(words):
89 | plt.annotate(
90 | w,
91 | xy=(xs[i], ys[i]), xytext=(6, 6),
92 | textcoords='offset points', ha='left', va='top',
93 | **dict(fontsize=10)
94 | )
95 | plt.show()
96 |
97 | def visualize_3d(model, word):
98 | """
99 | 根据输入的词搜索邻近词然后可视化展示 3D
100 | 参数:
101 | model: Word2Vec 模型
102 | word: 词汇列表
103 | """
104 |
105 | # 找出最相似的多个词
106 | words = [wp[0] for wp in model.most_similar(word, topn=20)]
107 |
108 | # 提取出词对应的词向量
109 | wordsInVector = [model[word] for word in words]
110 |
111 | # 进行 PCA 降维
112 | pca = PCA(n_components=3)
113 | pca.fit(wordsInVector)
114 | X = pca.transform(wordsInVector)
115 |
116 | # 绘制图形
117 | xs = X[:, 0]
118 | ys = X[:, 1]
119 | zs = X[:, 2]
120 |
121 | fig = plt.figure(figsize=(10, 6))
122 | ax = fig.add_subplot(111, projection='3d')
123 | ax.scatter(xs, ys, zs, marker='o')
124 |
125 | # 遍历所有的词添加点注释
126 | for i, w in enumerate(words):
127 | x2, y2, _ = proj3d.proj_transform(xs[i], ys[i], zs[i], ax.get_proj())
128 | ax.annotate(
129 | w,
130 | xy=(x2, y2), xytext=(6, 6),
131 | textcoords='offset points', ha='left', va='top',
132 | **dict(fontsize=10)
133 | )
134 | plt.show()
135 |
136 |
137 |
138 | if __name__ == "__main__":
139 | main()
140 |
--------------------------------------------------------------------------------
/ch.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | def set_ch():
4 | from pylab import mpl
5 | mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定默认字体
6 | mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
7 |
8 |
9 | def utf8writer_register():
10 | import sys
11 |
12 | if sys.platform == "win32":
13 | import codecs
14 | from ctypes import WINFUNCTYPE, windll, POINTER, byref, c_int
15 | from ctypes.wintypes import BOOL, HANDLE, DWORD, LPWSTR, LPCWSTR, LPVOID
16 |
17 | original_stderr = sys.stderr
18 |
19 | # If any exception occurs in this code, we'll probably try to print it on stderr,
20 | # which makes for frustrating debugging if stderr is directed to our wrapper.
21 | # So be paranoid about catching errors and reporting them to original_stderr,
22 | # so that we can at least see them.
23 | def _complain(message):
24 | print >> original_stderr, message if isinstance(message, str) else repr(message)
25 |
26 | # Work around .
27 | codecs.register(lambda name: codecs.lookup('utf-8') if name == 'cp65001' else None)
28 |
29 | # Make Unicode console output work independently of the current code page.
30 | # This also fixes .
31 | # Credit to Michael Kaplan
32 | # and TZOmegaTZIOY
33 | # .
34 | try:
35 | #
36 | # HANDLE WINAPI GetStdHandle(DWORD nStdHandle);
37 | # returns INVALID_HANDLE_VALUE, NULL, or a valid handle
38 | #
39 | #
40 | # DWORD WINAPI GetFileType(DWORD hFile);
41 | #
42 | #
43 | # BOOL WINAPI GetConsoleMode(HANDLE hConsole, LPDWORD lpMode);
44 |
45 | GetStdHandle = WINFUNCTYPE(HANDLE, DWORD)(("GetStdHandle", windll.kernel32))
46 | STD_INPUT_HANDLE = DWORD(-10)
47 | STD_OUTPUT_HANDLE = DWORD(-11)
48 | STD_ERROR_HANDLE = DWORD(-12)
49 | GetFileType = WINFUNCTYPE(DWORD, DWORD)(("GetFileType", windll.kernel32))
50 | FILE_TYPE_CHAR = 0x0002
51 | FILE_TYPE_REMOTE = 0x8000
52 | GetConsoleMode = WINFUNCTYPE(BOOL, HANDLE, POINTER(DWORD))(("GetConsoleMode", windll.kernel32))
53 | INVALID_HANDLE_VALUE = DWORD(-1).value
54 |
55 | def not_a_console(handle):
56 | if handle == INVALID_HANDLE_VALUE or handle is None:
57 | return True
58 | return ((GetFileType(handle) & ~FILE_TYPE_REMOTE) != FILE_TYPE_CHAR
59 | or GetConsoleMode(handle, byref(DWORD())) == 0)
60 | # old_stdin_fileno = None
61 | old_stdout_fileno = None
62 | old_stderr_fileno = None
63 | # if hasattr(sys.stdin, 'fileno'):
64 | # old_stdin_fileno = sys.stdin.fileno()
65 | if hasattr(sys.stdout, 'fileno'):
66 | old_stdout_fileno = sys.stdout.fileno()
67 | if hasattr(sys.stderr, 'fileno'):
68 | old_stderr_fileno = sys.stderr.fileno()
69 | # STDIN_FILENO = 0
70 | STDOUT_FILENO = 1
71 | STDERR_FILENO = 2
72 | # real_stdin = (old_stdin_fileno == STDIN_FILENO)
73 | real_stdout = (old_stdout_fileno == STDOUT_FILENO)
74 | real_stderr = (old_stderr_fileno == STDERR_FILENO)
75 |
76 | # if real_stdin:
77 | # hStdin = GetStdHandle(STD_INPUT_HANDLE)
78 | # if not_a_console(hStdin):
79 | # real_stdin = False
80 |
81 | if real_stdout:
82 | hStdout = GetStdHandle(STD_OUTPUT_HANDLE)
83 | if not_a_console(hStdout):
84 | real_stdout = False
85 |
86 | if real_stderr:
87 | hStderr = GetStdHandle(STD_ERROR_HANDLE)
88 | if not_a_console(hStderr):
89 | real_stderr = False
90 |
91 | if real_stdout or real_stderr: # or real_stdin
92 | # BOOL WINAPI WriteConsoleW(HANDLE hOutput, LPWSTR lpBuffer, DWORD nChars,
93 | # LPDWORD lpCharsWritten, LPVOID lpReserved);
94 |
95 | WriteConsoleW = WINFUNCTYPE(BOOL, HANDLE, LPWSTR, DWORD, POINTER(DWORD), LPVOID)(
96 | ("WriteConsoleW", windll.kernel32))
97 |
98 | class UnicodeOutput:
99 | def __init__(self, hConsole, stream, fileno, name):
100 | self._hConsole = hConsole
101 | self._stream = stream
102 | self._fileno = fileno
103 | self.closed = False
104 | self.softspace = False
105 | self.mode = 'w'
106 | self.encoding = 'utf-8'
107 | self.name = name
108 | self.flush()
109 |
110 | def isatty(self):
111 | return False
112 |
113 | def close(self):
114 | # don't really close the handle, that would only cause problems
115 | self.closed = True
116 |
117 | def fileno(self):
118 | return self._fileno
119 |
120 | def flush(self):
121 | if self._hConsole is None:
122 | try:
123 | self._stream.flush()
124 | except Exception as e:
125 | _complain("%s.flush: %r from %r" % (self.name, e, self._stream))
126 | raise
127 |
128 | def write(self, text):
129 | try:
130 | if self._hConsole is None:
131 | if isinstance(text, unicode):
132 | text = text.encode('utf-8')
133 | self._stream.write(text)
134 | else:
135 | if not isinstance(text, unicode):
136 | text = str(text).decode('utf-8')
137 | remaining = len(text)
138 | while remaining:
139 | n = DWORD(0)
140 | # There is a shorter-than-documented limitation on the
141 | # length of the string passed to WriteConsoleW (see
142 | # .
143 | retval = WriteConsoleW(self._hConsole, text, min(remaining, 10000), byref(n), None)
144 | if retval == 0 or n.value == 0:
145 | raise IOError("WriteConsoleW returned %r, n.value = %r" % (retval, n.value))
146 | remaining -= n.value
147 | if not remaining:
148 | break
149 | text = text[n.value:]
150 | except Exception as e:
151 | _complain("%s.write: %r" % (self.name, e))
152 | raise
153 |
154 | def writelines(self, lines):
155 | try:
156 | for line in lines:
157 | self.write(line)
158 | except Exception as e:
159 | _complain("%s.writelines: %r" % (self.name, e))
160 | raise
161 |
162 | def read(self, n=1):
163 | return unicode(self._stream.read(n), self._stream.encoding)
164 |
165 | def readinto(self, b):
166 | return unicode(self._stream.readinto(b), self._stream.encoding)
167 |
168 | def readline(self, limit=-1):
169 | return unicode(self._stream.readline(limit), self._stream.encoding)
170 |
171 | def readlines(self, limit=-1):
172 | result = [unicode(s, self._stream.encoding) for s in self._stream.readlines(limit)]
173 | return result
174 |
175 | #if real_stdin:
176 | #sys.stdin = UnicodeOutput(hStdin, None, STDIN_FILENO, '')
177 | #else:
178 |
179 | # It is more difficult to read from hStdin than write to hStdout,
180 | # cause bottom line fully work for me,
181 | # I haven't implemented it with win32api(ReadConsole).
182 | sys.stdin = UnicodeOutput(None, sys.stdin, sys.stdin.fileno(), '')
183 |
184 | if real_stdout:
185 | sys.stdout = UnicodeOutput(hStdout, None, STDOUT_FILENO, '')
186 | else:
187 | sys.stdout = UnicodeOutput(None, sys.stdout, old_stdout_fileno, '')
188 |
189 | if real_stderr:
190 | sys.stderr = UnicodeOutput(hStderr, None, STDERR_FILENO, '')
191 | else:
192 | sys.stderr = UnicodeOutput(None, sys.stderr, old_stderr_fileno, '')
193 |
194 |
195 | except Exception as e:
196 | _complain("exception %r while fixing up sys.stdout and sys.stderr" % (e,))
197 |
198 |
199 | # While we're at it, let's unmangle the command-line arguments:
200 |
201 | # This works around .
202 | GetCommandLineW = WINFUNCTYPE(LPWSTR)(("GetCommandLineW", windll.kernel32))
203 | CommandLineToArgvW = WINFUNCTYPE(POINTER(LPWSTR), LPCWSTR, POINTER(c_int))(
204 | ("CommandLineToArgvW", windll.shell32))
205 |
206 | argc = c_int(0)
207 | argv_unicode = CommandLineToArgvW(GetCommandLineW(), byref(argc))
208 |
209 | argv = [argv_unicode[i].encode('utf-8') for i in xrange(0, argc.value)]
210 |
211 | if not hasattr(sys, 'frozen'):
212 | # If this is an executable produced by py2exe or bbfreeze, then it will
213 | # have been invoked directly. Otherwise, unicode_argv[0] is the Python
214 | # interpreter, so skip that.
215 | argv = argv[1:]
216 |
217 | # Also skip option arguments to the Python interpreter.
218 | while len(argv) > 0:
219 | arg = argv[0]
220 | if not arg.startswith(u"-") or arg == u"-":
221 | break
222 | argv = argv[1:]
223 | if arg == u'-m':
224 | # sys.argv[0] should really be the absolute path of the module source,
225 | # but never mind
226 | break
227 | if arg == u'-c':
228 | argv[0] = u'-c'
229 | break
230 |
231 | # if you like:
232 | sys.argv = argv
233 |
--------------------------------------------------------------------------------
/jieba_dict/stopwords_zh.txt:
--------------------------------------------------------------------------------
1 | ,
2 | ?
3 | 、
4 | 。
5 | “
6 | ”
7 | 《
8 | 》
9 | !
10 | ,
11 | :
12 | ;
13 | ?
14 | 人民
15 | 末##末
16 | 啊
17 | 阿
18 | 哎
19 | 哎呀
20 | 哎哟
21 | 唉
22 | 俺
23 | 俺们
24 | 按
25 | 按照
26 | 吧
27 | 吧哒
28 | 把
29 | 罢了
30 | 被
31 | 本
32 | 本著
33 | 比
34 | 比方
35 | 比如
36 | 鄙人
37 | 彼
38 | 彼此
39 | 边
40 | 别
41 | 别的
42 | 别说
43 | 并
44 | 并且
45 | 不比
46 | 不成
47 | 不单
48 | 不但
49 | 不独
50 | 不管
51 | 不光
52 | 不过
53 | 不仅
54 | 不拘
55 | 不论
56 | 不怕
57 | 不然
58 | 不如
59 | 不特
60 | 不惟
61 | 不问
62 | 不只
63 | 朝
64 | 朝著
65 | 趁
66 | 趁著
67 | 乘
68 | 冲
69 | 除
70 | 除此之外
71 | 除非
72 | 除了
73 | 此
74 | 此间
75 | 此外
76 | 从
77 | 从而
78 | 打
79 | 待
80 | 但
81 | 但是
82 | 当
83 | 当著
84 | 到
85 | 得
86 | 的
87 | 的话
88 | 等
89 | 等等
90 | 地
91 | 第
92 | 叮咚
93 | 对
94 | 对于
95 | 多
96 | 多少
97 | 而
98 | 而况
99 | 而且
100 | 而是
101 | 而外
102 | 而言
103 | 而已
104 | 尔后
105 | 反过来
106 | 反过来说
107 | 反之
108 | 非但
109 | 非徒
110 | 否则
111 | 嘎
112 | 嘎登
113 | 该
114 | 赶
115 | 个
116 | 各
117 | 各个
118 | 各位
119 | 各种
120 | 各自
121 | 给
122 | 根据
123 | 跟
124 | 故
125 | 故此
126 | 固然
127 | 关于
128 | 管
129 | 归
130 | 果然
131 | 果真
132 | 过
133 | 哈
134 | 哈哈
135 | 呵
136 | 和
137 | 何
138 | 何处
139 | 何况
140 | 何时
141 | 嘿
142 | 哼
143 | 哼唷
144 | 呼哧
145 | 乎
146 | 哗
147 | 还是
148 | 还有
149 | 换句话说
150 | 换言之
151 | 或
152 | 或是
153 | 或者
154 | 极了
155 | 及
156 | 及其
157 | 及至
158 | 即
159 | 即便
160 | 即或
161 | 即令
162 | 即若
163 | 即使
164 | 几
165 | 几时
166 | 己
167 | 既
168 | 既然
169 | 既是
170 | 继而
171 | 加之
172 | 假如
173 | 假若
174 | 假使
175 | 鉴于
176 | 将
177 | 较
178 | 较之
179 | 叫
180 | 接著
181 | 结果
182 | 借
183 | 紧接著
184 | 进而
185 | 尽
186 | 尽管
187 | 经
188 | 经过
189 | 就
190 | 就是
191 | 就是说
192 | 据
193 | 具体地说
194 | 具体说来
195 | 开始
196 | 开外
197 | 靠
198 | 咳
199 | 可
200 | 可见
201 | 可是
202 | 可以
203 | 况且
204 | 啦
205 | 来
206 | 来著
207 | 离
208 | 例如
209 | 哩
210 | 连
211 | 连同
212 | 两者
213 | 了
214 | 临
215 | 另
216 | 另外
217 | 另一方面
218 | 论
219 | 嘛
220 | 吗
221 | 慢说
222 | 漫说
223 | 冒
224 | 么
225 | 每
226 | 每当
227 | 们
228 | 莫若
229 | 某
230 | 某个
231 | 某些
232 | 拿
233 | 哪
234 | 哪边
235 | 哪儿
236 | 哪个
237 | 哪里
238 | 哪年
239 | 哪怕
240 | 哪天
241 | 哪些
242 | 哪样
243 | 那
244 | 那边
245 | 那儿
246 | 那个
247 | 那会儿
248 | 那里
249 | 那么
250 | 那么些
251 | 那么样
252 | 那时
253 | 那些
254 | 那样
255 | 乃
256 | 乃至
257 | 呢
258 | 能
259 | 你
260 | 你们
261 | 您
262 | 宁
263 | 宁可
264 | 宁肯
265 | 宁愿
266 | 哦
267 | 呕
268 | 啪达
269 | 旁人
270 | 呸
271 | 凭
272 | 凭借
273 | 其
274 | 其次
275 | 其二
276 | 其他
277 | 其它
278 | 其一
279 | 其余
280 | 其中
281 | 起
282 | 起见
283 | 岂但
284 | 恰恰相反
285 | 前后
286 | 前者
287 | 且
288 | 然而
289 | 然后
290 | 然则
291 | 让
292 | 人家
293 | 任
294 | 任何
295 | 任凭
296 | 如
297 | 如此
298 | 如果
299 | 如何
300 | 如其
301 | 如若
302 | 如上所述
303 | 若
304 | 若非
305 | 若是
306 | 啥
307 | 上下
308 | 尚且
309 | 设若
310 | 设使
311 | 甚而
312 | 甚么
313 | 甚至
314 | 省得
315 | 时候
316 | 什么
317 | 什么样
318 | 使得
319 | 是
320 | 是的
321 | 首先
322 | 谁
323 | 谁知
324 | 顺
325 | 顺著
326 | 似的
327 | 虽
328 | 虽然
329 | 虽说
330 | 虽则
331 | 随
332 | 随著
333 | 所
334 | 所以
335 | 他
336 | 他们
337 | 他人
338 | 它
339 | 它们
340 | 她
341 | 她们
342 | 倘
343 | 倘或
344 | 倘然
345 | 倘若
346 | 倘使
347 | 腾
348 | 替
349 | 通过
350 | 同
351 | 同时
352 | 哇
353 | 万一
354 | 往
355 | 望
356 | 为
357 | 为何
358 | 为了
359 | 为什么
360 | 为著
361 | 喂
362 | 嗡嗡
363 | 我
364 | 我们
365 | 呜
366 | 呜呼
367 | 乌乎
368 | 无论
369 | 无宁
370 | 毋宁
371 | 嘻
372 | 吓
373 | 相对而言
374 | 像
375 | 向
376 | 向著
377 | 嘘
378 | 呀
379 | 焉
380 | 沿
381 | 沿著
382 | 要
383 | 要不
384 | 要不然
385 | 要不是
386 | 要么
387 | 要是
388 | 也
389 | 也罢
390 | 也好
391 | 一
392 | 一般
393 | 一旦
394 | 一方面
395 | 一来
396 | 一切
397 | 一样
398 | 一则
399 | 依
400 | 依照
401 | 矣
402 | 以
403 | 以便
404 | 以及
405 | 以免
406 | 以至
407 | 以至于
408 | 以致
409 | 抑或
410 | 因
411 | 因此
412 | 因而
413 | 因为
414 | 哟
415 | 用
416 | 由
417 | 由此可见
418 | 由于
419 | 有
420 | 有的
421 | 有关
422 | 有些
423 | 又
424 | 于
425 | 于是
426 | 于是乎
427 | 与
428 | 与此同时
429 | 与否
430 | 与其
431 | 越是
432 | 云云
433 | 哉
434 | 再说
435 | 再者
436 | 在
437 | 在下
438 | 咱
439 | 咱们
440 | 则
441 | 怎
442 | 怎么
443 | 怎么办
444 | 怎么样
445 | 怎样
446 | 咋
447 | 照
448 | 照著
449 | 者
450 | 这
451 | 这边
452 | 这儿
453 | 这个
454 | 这会儿
455 | 这就是说
456 | 这里
457 | 这么
458 | 这么点儿
459 | 这么些
460 | 这么样
461 | 这时
462 | 这些
463 | 这样
464 | 正如
465 | 吱
466 | 之
467 | 之类
468 | 之所以
469 | 之一
470 | 只是
471 | 只限
472 | 只要
473 | 只有
474 | 至
475 | 至于
476 | 诸位
477 | 著
478 | 著呢
479 | 自
480 | 自从
481 | 自个儿
482 | 自各儿
483 | 自己
484 | 自家
485 | 自身
486 | 综上所述
487 | 总的来看
488 | 总的来说
489 | 总的说来
490 | 总而言之
491 | 总之
492 | 纵
493 | 纵令
494 | 纵然
495 | 纵使
496 | 遵照
497 | 作为
498 | 兮
499 | 呃
500 | 呗
501 | 咚
502 | 咦
503 | 喏
504 | 啐
505 | 喔唷
506 | 嗬
507 | 嗯
508 | 嗳
509 | ~
510 | !
511 | .
512 | :
513 | "
514 | '
515 | (
516 | )
517 | *
518 | A
519 | 白
520 | 社会主义
521 | --
522 | ..
523 | >>
524 | [
525 | ]
526 |
527 | <
528 | >
529 | /
530 | \
531 | |
532 | -
533 | _
534 | +
535 | =
536 | &
537 | ^
538 | %
539 | #
540 | @
541 | `
542 | ;
543 | $
544 | (
545 | )
546 | ——
547 | —
548 | ¥
549 | ·
550 | ...
551 | ‘
552 | ’
553 | 〉
554 | 〈
555 | …
556 |
557 | 0
558 | 1
559 | 2
560 | 3
561 | 4
562 | 5
563 | 6
564 | 7
565 | 8
566 | 9
567 | 0
568 | 1
569 | 2
570 | 3
571 | 4
572 | 5
573 | 6
574 | 7
575 | 8
576 | 9
577 | 二
578 | 三
579 | 四
580 | 五
581 | 六
582 | 七
583 | 八
584 | 九
585 | 零
586 | >
587 | <
588 | @
589 | #
590 | $
591 | %
592 | ︿
593 | &
594 | *
595 | +
596 | ~
597 | |
598 | [
599 | ]
600 | {
601 | }
602 | 啊哈
603 | 啊呀
604 | 啊哟
605 | 挨次
606 | 挨个
607 | 挨家挨户
608 | 挨门挨户
609 | 挨门逐户
610 | 挨著
611 | 按理
612 | 按期
613 | 按时
614 | 按说
615 | 暗地里
616 | 暗中
617 | 暗自
618 | 昂然
619 | 八成
620 | 白白
621 | 半
622 | 梆
623 | 保管
624 | 保险
625 | 饱
626 | 背地里
627 | 背靠背
628 | 倍感
629 | 倍加
630 | 本人
631 | 本身
632 | 甭
633 | 比起
634 | 比如说
635 | 比照
636 | 毕竟
637 | 必
638 | 必定
639 | 必将
640 | 必须
641 | 便
642 | 别人
643 | 并非
644 | 并肩
645 | 并没
646 | 并没有
647 | 并排
648 | 并无
649 | 勃然
650 | 不
651 | 不必
652 | 不常
653 | 不大
654 | 不但...而且
655 | 不得
656 | 不得不
657 | 不得了
658 | 不得已
659 | 不迭
660 | 不定
661 | 不对
662 | 不妨
663 | 不管怎样
664 | 不会
665 | 不仅...而且
666 | 不仅仅
667 | 不仅仅是
668 | 不经意
669 | 不可开交
670 | 不可抗拒
671 | 不力
672 | 不了
673 | 不料
674 | 不满
675 | 不免
676 | 不能不
677 | 不起
678 | 不巧
679 | 不然的话
680 | 不日
681 | 不少
682 | 不胜
683 | 不时
684 | 不是
685 | 不同
686 | 不能
687 | 不要
688 | 不外
689 | 不外乎
690 | 不下
691 | 不限
692 | 不消
693 | 不已
694 | 不亦乐乎
695 | 不由得
696 | 不再
697 | 不择手段
698 | 不怎么
699 | 不曾
700 | 不知不觉
701 | 不止
702 | 不止一次
703 | 不至于
704 | 才
705 | 才能
706 | 策略地
707 | 差不多
708 | 差一点
709 | 常
710 | 常常
711 | 常言道
712 | 常言说
713 | 常言说得好
714 | 长此下去
715 | 长话短说
716 | 长期以来
717 | 长线
718 | 敞开儿
719 | 彻夜
720 | 陈年
721 | 趁便
722 | 趁机
723 | 趁热
724 | 趁势
725 | 趁早
726 | 成年
727 | 成年累月
728 | 成心
729 | 乘机
730 | 乘胜
731 | 乘势
732 | 乘隙
733 | 乘虚
734 | 诚然
735 | 迟早
736 | 充分
737 | 充其极
738 | 充其量
739 | 抽冷子
740 | 臭
741 | 初
742 | 出
743 | 出来
744 | 出去
745 | 除此
746 | 除此而外
747 | 除此以外
748 | 除开
749 | 除去
750 | 除却
751 | 除外
752 | 处处
753 | 川流不息
754 | 传
755 | 传说
756 | 传闻
757 | 串行
758 | 纯
759 | 纯粹
760 | 此后
761 | 此中
762 | 次第
763 | 匆匆
764 | 从不
765 | 从此
766 | 从此以后
767 | 从古到今
768 | 从古至今
769 | 从今以后
770 | 从宽
771 | 从来
772 | 从轻
773 | 从速
774 | 从头
775 | 从未
776 | 从无到有
777 | 从小
778 | 从新
779 | 从严
780 | 从优
781 | 从早到晚
782 | 从中
783 | 从重
784 | 凑巧
785 | 粗
786 | 存心
787 | 达旦
788 | 打从
789 | 打开天窗说亮话
790 | 大
791 | 大不了
792 | 大大
793 | 大抵
794 | 大都
795 | 大多
796 | 大凡
797 | 大概
798 | 大家
799 | 大举
800 | 大略
801 | 大面儿上
802 | 大事
803 | 大体
804 | 大体上
805 | 大约
806 | 大张旗鼓
807 | 大致
808 | 呆呆地
809 | 带
810 | 殆
811 | 待到
812 | 单
813 | 单纯
814 | 单单
815 | 但愿
816 | 弹指之间
817 | 当场
818 | 当儿
819 | 当即
820 | 当口儿
821 | 当然
822 | 当庭
823 | 当头
824 | 当下
825 | 当真
826 | 当中
827 | 倒不如
828 | 倒不如说
829 | 倒是
830 | 到处
831 | 到底
832 | 到了儿
833 | 到目前为止
834 | 到头
835 | 到头来
836 | 得起
837 | 得天独厚
838 | 的确
839 | 等到
840 | 叮当
841 | 顶多
842 | 定
843 | 动不动
844 | 动辄
845 | 陡然
846 | 都
847 | 独
848 | 独自
849 | 断然
850 | 顿时
851 | 多次
852 | 多多
853 | 多多少少
854 | 多多益善
855 | 多亏
856 | 多年来
857 | 多年前
858 | 而后
859 | 而论
860 | 而又
861 | 尔等
862 | 二话不说
863 | 二话没说
864 | 反倒
865 | 反倒是
866 | 反而
867 | 反手
868 | 反之亦然
869 | 反之则
870 | 方
871 | 方才
872 | 方能
873 | 放量
874 | 非常
875 | 非得
876 | 分期
877 | 分期分批
878 | 分头
879 | 奋勇
880 | 愤然
881 | 风雨无阻
882 | 逢
883 | 弗
884 | 甫
885 | 嘎嘎
886 | 该当
887 | 概
888 | 赶快
889 | 赶早不赶晚
890 | 敢
891 | 敢情
892 | 敢于
893 | 刚
894 | 刚才
895 | 刚好
896 | 刚巧
897 | 高低
898 | 格外
899 | 隔日
900 | 隔夜
901 | 个人
902 | 各式
903 | 更
904 | 更加
905 | 更进一步
906 | 更为
907 | 公然
908 | 共
909 | 共总
910 | 够瞧的
911 | 姑且
912 | 古来
913 | 故而
914 | 故意
915 | 固
916 | 怪
917 | 怪不得
918 | 惯常
919 | 光
920 | 光是
921 | 归根到底
922 | 归根结底
923 | 过于
924 | 毫不
925 | 毫无
926 | 毫无保留地
927 | 毫无例外
928 | 好在
929 | 何必
930 | 何尝
931 | 何妨
932 | 何苦
933 | 何乐而不为
934 | 何须
935 | 何止
936 | 很
937 | 很多
938 | 很少
939 | 轰然
940 | 后来
941 | 呼啦
942 | 忽地
943 | 忽然
944 | 互
945 | 互相
946 | 哗啦
947 | 话说
948 | 还
949 | 恍然
950 | 会
951 | 豁然
952 | 活
953 | 伙同
954 | 或多或少
955 | 或许
956 | 基本
957 | 基本上
958 | 基于
959 | 极
960 | 极大
961 | 极度
962 | 极端
963 | 极力
964 | 极其
965 | 极为
966 | 急匆匆
967 | 即将
968 | 即刻
969 | 即是说
970 | 几度
971 | 几番
972 | 几乎
973 | 几经
974 | 既...又
975 | 继之
976 | 加上
977 | 加以
978 | 间或
979 | 简而言之
980 | 简言之
981 | 简直
982 | 见
983 | 将才
984 | 将近
985 | 将要
986 | 交口
987 | 较比
988 | 较为
989 | 接连不断
990 | 接下来
991 | 皆可
992 | 截然
993 | 截至
994 | 借以
995 | 借此
996 | 借以
997 | 届时
998 | 仅
999 | 仅仅
1000 | 谨
1001 | 进来
1002 | 进去
1003 | 近
1004 | 近几年来
1005 | 近来
1006 | 近年来
1007 | 尽管如此
1008 | 尽可能
1009 | 尽快
1010 | 尽量
1011 | 尽然
1012 | 尽如人意
1013 | 尽心竭力
1014 | 尽心尽力
1015 | 尽早
1016 | 精光
1017 | 经常
1018 | 竟
1019 | 竟然
1020 | 究竟
1021 | 就此
1022 | 就地
1023 | 就算
1024 | 居然
1025 | 局外
1026 | 举凡
1027 | 据称
1028 | 据此
1029 | 据实
1030 | 据说
1031 | 据我所知
1032 | 据悉
1033 | 具体来说
1034 | 决不
1035 | 决非
1036 | 绝
1037 | 绝不
1038 | 绝顶
1039 | 绝对
1040 | 绝非
1041 | 均
1042 | 喀
1043 | 看
1044 | 看来
1045 | 看起来
1046 | 看上去
1047 | 看样子
1048 | 可好
1049 | 可能
1050 | 恐怕
1051 | 快
1052 | 快要
1053 | 来不及
1054 | 来得及
1055 | 来讲
1056 | 来看
1057 | 拦腰
1058 | 牢牢
1059 | 老
1060 | 老大
1061 | 老老实实
1062 | 老是
1063 | 累次
1064 | 累年
1065 | 理当
1066 | 理该
1067 | 理应
1068 | 历
1069 | 立
1070 | 立地
1071 | 立刻
1072 | 立马
1073 | 立时
1074 | 联袂
1075 | 连连
1076 | 连日
1077 | 连日来
1078 | 连声
1079 | 连袂
1080 | 临到
1081 | 另方面
1082 | 另行
1083 | 另一个
1084 | 路经
1085 | 屡
1086 | 屡次
1087 | 屡次三番
1088 | 屡屡
1089 | 缕缕
1090 | 率尔
1091 | 率然
1092 | 略
1093 | 略加
1094 | 略微
1095 | 略为
1096 | 论说
1097 | 马上
1098 | 蛮
1099 | 满
1100 | 没
1101 | 没有
1102 | 每逢
1103 | 每每
1104 | 每时每刻
1105 | 猛然
1106 | 猛然间
1107 | 莫
1108 | 莫不
1109 | 莫非
1110 | 莫如
1111 | 默默地
1112 | 默然
1113 | 呐
1114 | 那末
1115 | 奈
1116 | 难道
1117 | 难得
1118 | 难怪
1119 | 难说
1120 | 内
1121 | 年复一年
1122 | 凝神
1123 | 偶而
1124 | 偶尔
1125 | 怕
1126 | 砰
1127 | 碰巧
1128 | 譬如
1129 | 偏偏
1130 | 乒
1131 | 平素
1132 | 颇
1133 | 迫于
1134 | 扑通
1135 | 其后
1136 | 其实
1137 | 奇
1138 | 齐
1139 | 起初
1140 | 起来
1141 | 起首
1142 | 起头
1143 | 起先
1144 | 岂
1145 | 岂非
1146 | 岂止
1147 | 迄
1148 | 恰逢
1149 | 恰好
1150 | 恰恰
1151 | 恰巧
1152 | 恰如
1153 | 恰似
1154 | 千
1155 | 千万
1156 | 千万千万
1157 | 切
1158 | 切不可
1159 | 切莫
1160 | 切切
1161 | 切勿
1162 | 窃
1163 | 亲口
1164 | 亲身
1165 | 亲手
1166 | 亲眼
1167 | 亲自
1168 | 顷
1169 | 顷刻
1170 | 顷刻间
1171 | 顷刻之间
1172 | 请勿
1173 | 穷年累月
1174 | 取道
1175 | 去
1176 | 权时
1177 | 全都
1178 | 全力
1179 | 全年
1180 | 全然
1181 | 全身心
1182 | 然
1183 | 人人
1184 | 仍
1185 | 仍旧
1186 | 仍然
1187 | 日复一日
1188 | 日见
1189 | 日渐
1190 | 日益
1191 | 日臻
1192 | 如常
1193 | 如此等等
1194 | 如次
1195 | 如今
1196 | 如期
1197 | 如前所述
1198 | 如上
1199 | 如下
1200 | 汝
1201 | 三番两次
1202 | 三番五次
1203 | 三天两头
1204 | 瑟瑟
1205 | 沙沙
1206 | 上
1207 | 上来
1208 | 上去
1209 |
--------------------------------------------------------------------------------