├── 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 | --------------------------------------------------------------------------------