├── .github
└── workflows
│ └── build-and-release.yml
├── .gitignore
├── LICENSE
├── README.md
├── data
├── A_kaomoji_dict_data.txt
├── Temreg_dict_data.txt
├── custom_phrase_dict_data.txt
├── lmeee_dict_data.txt
└── sougou_dict_data.txt
├── generate_dict.py
├── kaomoji_processor.py
├── pychaifen
└── __init__.py
├── pyshuangpin
├── __init__.py
└── scheme
│ ├── __init__.py
│ ├── microsoft.py
│ ├── sogou.py
│ ├── xiaohe.py
│ ├── ziranma.py
│ └── znabc.py
├── requirements.txt
└── test_display.py
/.github/workflows/build-and-release.yml:
--------------------------------------------------------------------------------
1 | name: Build and Release
2 |
3 | on:
4 | push:
5 | tags:
6 | - 'V*'
7 |
8 | jobs:
9 | build-and-release:
10 | runs-on: ubuntu-latest
11 | env:
12 | PYTHON_VERSION: '3.11'
13 |
14 | steps:
15 | - name: Checkout repository
16 | uses: actions/checkout@v2
17 | with:
18 | fetch-depth: 0 # 获取完整历史记录,用于生成CHANGELOG
19 |
20 | - name: Set up Python
21 | uses: actions/setup-python@v2
22 | with:
23 | python-version: ${{ env.PYTHON_VERSION }}
24 |
25 | - name: Install dependencies
26 | run: |
27 | python -m pip install --upgrade pip
28 | # 安装requirements.txt中的依赖
29 | pip install -r requirements.txt
30 |
31 | - name: Generate dictionaries
32 | run: |
33 | python generate_dict.py --all
34 |
35 | - name: Generate CHANGELOG
36 | run: |
37 | # 获取当前标签
38 | CURRENT_TAG=$(git describe --tags --abbrev=0)
39 | echo "Current tag: $CURRENT_TAG"
40 |
41 | # 获取上一个标签,如果没有则使用初始提交
42 | PREVIOUS_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || git rev-list --max-parents=0 HEAD)
43 | echo "Previous tag or initial commit: $PREVIOUS_TAG"
44 |
45 | # 输出标签之间的变更到CHANGELOG.md
46 | echo "# $CURRENT_TAG 更新日志" > CHANGELOG.md
47 | echo "" >> CHANGELOG.md
48 | echo "发布日期: $(date +%Y-%m-%d)" >> CHANGELOG.md
49 | echo "" >> CHANGELOG.md
50 | echo "## 更新内容" >> CHANGELOG.md
51 | echo "" >> CHANGELOG.md
52 | if [[ "$PREVIOUS_TAG" == $(git rev-list --max-parents=0 HEAD) ]]; then
53 | # 如果这是第一个标签,列出所有提交
54 | git log --pretty=format:"* %s (%h)" $PREVIOUS_TAG..$CURRENT_TAG >> CHANGELOG.md
55 | else
56 | # 否则列出自上一个标签以来的提交
57 | git log --pretty=format:"* %s (%h)" $PREVIOUS_TAG..$CURRENT_TAG >> CHANGELOG.md
58 | fi
59 |
60 | # 添加固定内容
61 | echo "" >> CHANGELOG.md
62 | echo "" >> CHANGELOG.md
63 | echo "### 直接使用预生成的词库" >> CHANGELOG.md
64 | echo "" >> CHANGELOG.md
65 | echo "如果您没有开发需求,可以直接前往 [releases](https://github.com/aoguai/rime_kaomoji_dict/releases) 下载最新版本的词库文件,直接使用即可。" >> CHANGELOG.md
66 | echo "" >> CHANGELOG.md
67 | echo "解压后你会得到以下适用于Rime输入法的词库文件:" >> CHANGELOG.md
68 | echo "\`\`\`" >> CHANGELOG.md
69 | echo "kaomoji_pinyin.dict.yaml # 全拼版颜文字词库" >> CHANGELOG.md
70 | echo "kaomoji_kmj.dict.yaml # kmj标记版颜文字词库" >> CHANGELOG.md
71 | echo "kaomoji_shuangpin_xiaohe.dict.yaml # 小鹤双拼版颜文字词库" >> CHANGELOG.md
72 | echo "kaomoji_shuangpin_ziranma.dict.yaml # 自然码双拼版颜文字词库" >> CHANGELOG.md
73 | echo "kaomoji_shuangpin_sogou.dict.yaml # 搜狗双拼版颜文字词库" >> CHANGELOG.md
74 | echo "kaomoji_shuangpin_microsoft.dict.yaml # 微软双拼版颜文字词库" >> CHANGELOG.md
75 | echo "kaomoji_shuangpin_znabc.dict.yaml # 智能ABC双拼版颜文字词库" >> CHANGELOG.md
76 | echo "\`\`\`" >> CHANGELOG.md
77 | echo "" >> CHANGELOG.md
78 | echo "它们的区别在于:" >> CHANGELOG.md
79 | echo "" >> CHANGELOG.md
80 | echo "- \`kaomoji_kmj.dict.yaml\`:固定将**所有颜文字**的**编码**设置为\`kmj\`" >> CHANGELOG.md
81 | echo "- \`kaomoji_pinyin.dict.yaml\`:使用颜文字对应中文的拼音作为编码" >> CHANGELOG.md
82 | echo "- \`kaomoji_shuangpin_*.dict.yaml\`:使用不同双拼方案对应的编码" >> CHANGELOG.md
83 | echo "" >> CHANGELOG.md
84 | echo "### 词库差异与选择" >> CHANGELOG.md
85 | echo "" >> CHANGELOG.md
86 | echo "不同类型词库的实际输入体验:" >> CHANGELOG.md
87 | echo "" >> CHANGELOG.md
88 | echo "- **全拼版**:输入颜文字对应中文的拼音,如输入\`kaixin\`可能得到\`(✿◡‿◡)\`" >> CHANGELOG.md
89 | echo "- **kmj版**:输入\`kmj\`获取所有颜文字,可结合Rime的模糊搜索功能" >> CHANGELOG.md
90 | echo "- **双拼版**:输入颜文字对应中文的双拼编码,如小鹤双拼输入\`kx\`可能得到\`(✿◡‿◡)\`" >> CHANGELOG.md
91 | echo "" >> CHANGELOG.md
92 | echo "您可以根据自己的喜好和输入习惯选择适合的词库。不同词库之间不冲突,可以同时启用多个。" >> CHANGELOG.md
93 |
94 | # 显示CHANGELOG内容
95 | cat CHANGELOG.md
96 |
97 | - name: Package output directory
98 | run: |
99 | zip -r rime_kaomoji_dict.zip output/
100 |
101 | - name: Create Release
102 | id: create_release
103 | uses: actions/create-release@v1
104 | env:
105 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
106 | with:
107 | tag_name: ${{ github.ref }}
108 | release_name: Release ${{ github.ref_name }}
109 | body_path: CHANGELOG.md
110 | draft: false
111 | prerelease: false
112 |
113 | - name: Upload Release Asset
114 | uses: actions/upload-release-asset@v1
115 | env:
116 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
117 | with:
118 | upload_url: ${{ steps.create_release.outputs.upload_url }}
119 | asset_path: ./rime_kaomoji_dict.zip
120 | asset_name: rime_kaomoji_dict-${{ github.ref_name }}.zip
121 | asset_content_type: application/zip
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .gitignore
2 | /.gitignore
3 | /*.zip
4 | /output
5 | /venv/
6 | .idea
7 | __pycache__
8 | CHANGELOG.md
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 aoguai
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # rime_kaomoji_dict
2 |
3 | 一个颜文字 (kaomoji) 词库,同时可以生成适用于 [Rime 输入法](https://rime.im/) 的词库。
4 |
5 | A collection of kaomoji expressions, also capable of generating dictionaries suitable for the [Rime input method](https://rime.im/).
6 |
7 | ## 目录结构
8 |
9 | 以下是对主要目录结构的说明:
10 |
11 | ```
12 | rime_kaomoji_dict
13 | ├─ data
14 | │ ├─ A_kaomoji_dict_data.txt:A岛匿名版部分颜文字素材(无编码信息)
15 | │ ├─ Temreg_dict_data.txt:百度贴吧吧友Temreg分享的颜文字素材
16 | │ ├─ custom_phrase_dict_data.txt: girhub kaos 项目中的颜文字素材
17 | │ ├─ lmeee_dict_data.txt:拉米工具颜文字素材
18 | │ └─ sougou_dict_data.txt:搜狗颜文字与A岛匿名版部分颜文字(有编码信息)素材
19 | ├─ kaomoji_processor.py:颜文字处理核心模块
20 | ├─ generate_dict.py:一站式词库生成工具
21 | └─ test_display.py:颜文字特殊空格显示测试脚本
22 | ```
23 |
24 | ## 特性与解决方案
25 |
26 | 这个工具尝试解决了两个主要问题:
27 |
28 | 1. **OpenCC空格处理问题**:用特殊空格(U+2002)替换普通空格(U+0020),尝试解决了OpenCC将空格作为分隔符导致的颜文字分割问题。
29 |
30 | 2. **Emoji撞车问题**:使用统一的`kmj`标记为颜文字添加特定标识,与emoji区分开来,不会相互干扰。
31 |
32 | ## 安装与使用
33 |
34 | 本项目不仅可以用于生成适用于 [Rime 输入法](https://rime.im/) 的词库,也可以用于生成其他输入法的词库。
35 |
36 | 同时您还可以将其视为一般颜文字词库,用于网络表情NLP,颜文字识别,颜文字表情实体识别、属性检测、新颜发现等。
37 |
38 | ### 安装依赖
39 |
40 | ```bash
41 | pip install -r requirements.txt
42 | ```
43 |
44 | ### 生成词库
45 |
46 | 项目提供了一站式词库生成工具`generate_dict.py`,支持多种选项:
47 |
48 | ```bash
49 | python generate_dict.py [options]
50 | ```
51 |
52 | 选项说明:
53 |
54 | ```
55 | --output-dir DIR 指定输出目录 (默认: output)
56 | --all 生成所有类型的词库(全拼词库、kmj词库和所有双拼方案词库)
57 | --pinyin 生成拼音版词库
58 | --kmj 生成kmj版词库
59 | --shuangpin 生成双拼版词库
60 | --scheme {xiaohe,ziranma,sogou,microsoft,znabc}
61 | 指定双拼方案 (默认: xiaohe)
62 | --no-special-space 不使用特殊空格替换普通空格
63 | --no-dedup 不对生成的词库进行去重
64 | --help 显示帮助信息
65 | ```
66 |
67 | 例如,生成全拼和小鹤双拼词库:
68 |
69 | ```bash
70 | python generate_dict.py --pinyin --shuangpin --scheme xiaohe
71 | ```
72 |
73 | 生成所有类型词库(包括全拼、kmj和所有双拼方案):
74 |
75 | ```bash
76 | python generate_dict.py --all
77 | ```
78 |
79 | 生成指定双拼方案的词库:
80 |
81 | ```bash
82 | python generate_dict.py --shuangpin --scheme sogou
83 | ```
84 |
85 | 默认情况下,如果不指定任何选项,会生成所有类型的词库(等同于使用--all选项)。
86 |
87 | ### 直接使用预生成的词库
88 |
89 | 如果您没有开发需求,可以直接前往 [releases](https://github.com/aoguai/rime_kaomoji_dict/releases) 下载最新版本的词库文件,直接使用即可。
90 |
91 | 解压后你会得到以下适用于Rime输入法的词库文件:
92 | ```
93 | kaomoji_pinyin.dict.yaml # 全拼版颜文字词库
94 | kaomoji_kmj.dict.yaml # kmj标记版颜文字词库
95 | kaomoji_shuangpin_xiaohe.dict.yaml # 小鹤双拼版颜文字词库
96 | kaomoji_shuangpin_ziranma.dict.yaml # 自然码双拼版颜文字词库
97 | kaomoji_shuangpin_sogou.dict.yaml # 搜狗双拼版颜文字词库
98 | kaomoji_shuangpin_microsoft.dict.yaml # 微软双拼版颜文字词库
99 | kaomoji_shuangpin_znabc.dict.yaml # 智能ABC双拼版颜文字词库
100 | ```
101 |
102 | 它们的区别在于:
103 |
104 | - `kaomoji_kmj.dict.yaml`:固定将**所有颜文字**的**编码**设置为`kmj`
105 | - `kaomoji_pinyin.dict.yaml`:使用颜文字对应中文的拼音作为编码
106 | - `kaomoji_shuangpin_*.dict.yaml`:使用不同双拼方案对应的编码
107 |
108 | ### 词库差异与选择
109 |
110 | 不同类型词库的实际输入体验:
111 |
112 | - **全拼版**:输入颜文字对应中文的拼音,如输入`kaixin`可能得到`(✿◡‿◡)`
113 | - **kmj版**:输入`kmj`获取所有颜文字,可结合Rime的模糊搜索功能
114 | - **双拼版**:输入颜文字对应中文的双拼编码,如小鹤双拼输入`kx`可能得到`(✿◡‿◡)`
115 |
116 | 您可以根据自己的喜好和输入习惯选择适合的词库。不同词库之间不冲突,可以同时启用多个。
117 |
118 | ## 项目技术说明
119 |
120 | ### 空格处理方案
121 |
122 | 项目使用Unicode En空格(U+2002)替换普通空格(U+0020)来解决OpenCC的分词问题。此特殊空格在几乎所有平台和字体中都能正常显示,与普通空格视觉效果基本一致。
123 |
124 | ### 自定义构建
125 |
126 | 如果您需要自定义处理逻辑,可以直接修改`kaomoji_processor.py`:
127 |
128 | - `replace_spaces`方法:控制空格替换逻辑
129 | - `process_kaomoji`方法:颜文字整体处理逻辑
130 | - `process_source_data`方法:数据源处理逻辑
131 |
132 | ### 生成双拼词库
133 |
134 | 从本仓库源码构建双拼词库时,`generate_dict.py`会自动将全拼词库转换为指定的双拼方案。支持小鹤双拼、自然码、搜狗双拼、微软双拼、智能ABC双拼方案。
135 |
136 | 由于音节划分算法有局限,部分形如pingan的编码会取pin/gan而非ping/an导致转换不正确,这部分会被标记为转换失败并保存到单独的文件中。
137 |
138 | ### 去重排序功能
139 |
140 | 为了提高词库质量,所有类型的词库生成过程都会默认进行去重和排序处理。去重功能消除了来自不同数据源的重复颜文字条目,排序则按照拼音顺序对词库进行组织,提供更好的使用体验。
141 |
142 | 如果出于特殊原因需要保留重复条目,可以使用`--no-dedup`选项禁用去重功能。
143 |
144 | ## 数据原始来源
145 |
146 | [X岛匿名版](https://www.nmbxd1.com/Forum)
147 |
148 | [颜文字大全 - 拉米工具](https://tool.lmeee.com/yanwenzi)
149 |
150 | [求助小狼毫怎么输入颜文字。【rime吧】_百度贴吧](https://tieba.baidu.com/p/2357282768)
151 |
152 | [kaos/dict.txt at master · tisyang/kaos](https://github.com/tisyang/kaos/blob/master/dict.txt)
153 |
154 | [搜狗颜文字](https://pinyin.sogou.com/dict/ywz/?f=dict_index&ytype=24)
155 |
156 | ### 贡献者们
157 | 感谢贡献者们对本项目作出的贡献:
158 |
159 |
160 |
161 |
162 |
163 |
164 |  xtmu 💻🐛🚧 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 | ## 免责声明
175 | [rime_kaomoji_dict](https://github.com/aoguai/rime_kaomoji_dict) 遵循 [MIT 开源协议](https://github.com/aoguai/rime_kaomoji_dict/blob/master/LICENSE)。
--------------------------------------------------------------------------------
/data/A_kaomoji_dict_data.txt:
--------------------------------------------------------------------------------
1 | (=゚ω゚)=
2 | (゚ω゚)
3 | (o゚ω゚o)
4 | (*´ω`*)
5 | ヾ(´ω゚`)
6 | ( ^ω^)
7 | (・ω・)
8 | (`・ω・)
9 | (`・ω・´)
10 | (´・ω・`)
11 | (´・ω)
12 | (`・ω)
13 | (<ゝω・)☆
--------------------------------------------------------------------------------
/data/Temreg_dict_data.txt:
--------------------------------------------------------------------------------
1 | \(//?//)\ hai xiu 0
2 | o((>ω< ))o aaa 0
3 | o(≧口≦)o aaa 0
4 | ╮( ̄▽ ̄")╭ ai 0
5 | ( ̄y▽, ̄)╭ 哎哟哟…… ai yo 0
6 | 安安啦~~~ o(* ̄▽ ̄*)ブ an an 0
7 | ヾ(≧O≦)〃嗷~ ao 0
8 | ┗|`O′|┛ 嗷~~ ao 0
9 | (o|o) 奥特曼…… ao te man 0
10 | (o|o) 凹凸曼…… ao tu man 0
11 | m(_ _)m bai 0
12 | ヾ( ̄▽ ̄)Bye~Bye~ bai 0
13 | (-人-) [拜佛] bai fo 0
14 | 拜托啦……(^人^) bai tuo 0
15 | [抱抱]━((*′ ▽`)爻(′▽`*))━!!! bao bao 0
16 | [抱抱]━((*′д`)爻(′д`*))━!!!! bao bao 0
17 | \( ̄︶ ̄)/ 抱抱~ bao bao 0
18 | \( ̄︶ ̄*\))抱抱~ bao bao 0
19 | ▄︻┻┳═一…… ☆(>○<) bao tou 0
20 | ヾ(≧▽≦*)o bao xiao 0
21 | o(*≧▽≦)ツ bao xiao 0
22 | ヾ(′▽`*)ゝ[包在我身上!] bao zai wo shen shang 0
23 | 超远程BB枪!(# ̄□ ̄)o―∈‥oo━━━━━━━☆ bb qiang 0
24 | (ˉ▽ˉ;)[呃~被发现了......] bei fa xian le 0
25 | o(≧口≦)o beng kui 0
26 | o(′益`)o [便秘] bian mi 0
27 | §(* ̄▽ ̄*)§[辫子] bian zi 0
28 | [吃我一鞭!]( `0‘)ノ~~~~~~~~~ν bian zi 0
29 | <( ̄3 ̄)> 表! biao 0
30 | ______λ......___丬 别走啊~~ bie zou 0
31 | [瘪嘴](* ̄︿ ̄) bie zui 0
32 | (′゜c_,゜` ) [鼻毛] bi mao 0
33 | (o゜▽゜)o☆[BINGO!] bingo 0
34 | ╭∩╮(︶︿︶)╭∩╮鄙视你! bi shi 0
35 | ( ̄ ‘i  ̄;) bi ti 0
36 | ( ̄ ii  ̄;) ( ̄" ̄;) bi ti 0
37 | (⊙x⊙;) bi zui 0
38 | (*^ ^*)(^ *) bo 0
39 | (*  ̄3)(ε ̄ *) [啵啵] bobo 0
40 | 真空波动拳!( `o′){ ···-=≡)) bo dong quan 0
41 | (◎_x) bqlz 0
42 | (@_@;)? [不懂] bu dong 0
43 | o( ̄┰ ̄*)ゞ bu hao yi si 0
44 | (/▽\) 我不看…… bu kan 0
45 | [不满](* ̄︿ ̄) bu man 0
46 | “不明真相的围观群众” 槑槑槑槑呆槑槑槑槑槑槑槑槑…… bu ming zhen xiang 0
47 | ヾ( ┬o┬)┌θθθθ(;;_ _).o○[555~他不起来……] bu qi 0
48 | ㄟ( ▔, ▔ )ㄏ [不是我干的] bu shi wo 0
49 | [不屑]( ̄_, ̄ ) bu xie 0
50 | °.°·(((p(≧□≦)q)))·°.°。 bu yao 0
51 | 不>( ̄ε ̄ =0,  ̄3 ̄)<要 bu yao 0
52 | (o′┏▽┓`o) [财神爷] cai shen 0
53 | X﹏X 惨了! can le 0
54 | 凸(艹皿艹 ) cao 0
55 | (ノへ ̄、)[擦眼泪……] ca yan lei 0
56 | ( * ̄▽ ̄)((≧︶≦*) [蹭] ceng 0
57 | [蹭](*≧︶≦))( ̄▽ ̄* )ゞ ceng 0
58 | q(≧▽≦q) chao xiao 0
59 | [叉腰] <)。(> cha yao 0
60 | [吃饭去鸟].....(((((ヾ( o=0,^·ェ·)o ┏━┓ chi fan 0
61 | (。>︿<)_θ[吃药] chi yao 0
62 | 冲出!!___*\(  ̄皿 ̄)/#____ chong chu 0
63 | 抽!!( ̄ε(# ̄)☆╰╮( ̄▽ ̄///) chou 0
64 | ヾ(′▽`*)ゝ[包在我身上!] chou p 0
65 | (ノへ ̄、)[抽泣] chou qi 0
66 | ( ̄ c ̄)y▂ξ。。。 chou yan 0
67 | <(  ̄^ ̄)(θ(θ☆( >_< chuai 0
68 | ε=0,ε┣G┻F┳ε=0,ヽ(* ̄▽ ̄)ノ┻W┫穿墙过去! chuan qiang 0
69 | [EXIT]______λ......_____ chu kou 0
70 | [EXIT]λ…λλ…λ…λλλ… chu kou 0
71 | o( ̄▽ ̄*)ゞ)) ̄▽ ̄*)o [手肘戳戳] chuo 0
72 | (~ ̄▽ ̄)→))* ̄▽ ̄*)o [手指戳戳] chuo 0
73 | →)╥﹏╥) [戳] chuo lian 0
74 | [赐予你力量!]( * ̄▽ ̄)o ─═≡※:☆▆▅▄▃▂_ ci yu ni li liang 0
75 | (′台` ) [大鼻子] da bi zi 0
76 | [打呵欠](_ _)( - . - )(~O~) ……( - . - ) da he qian 0
77 | ━┳━ ━┳━ dai 0
78 | ( ̄△ ̄;) dai 0
79 | ( ̄旦 ̄;) dai 0
80 | 呆滞 ━┳━ ━┳━ dai zhi 0
81 | 淡━━( ̄ー ̄*|||━━定 dan ding 0
82 | 当然!<(ˉ^ˉ)> dang ran 0
83 | Σ(っ °Д °;)っ dao 0
84 | Σ(`д′*ノ)ノ dao 0
85 | (-_-メ)[刀疤] dao ba 0
86 | Pia!(o ‵-′)ノ” [臭蚊子!] da wen zi 0
87 | ...(* ̄0 ̄)ノ[等等我…我……我…………] deng deng 0
88 | ~( ̄▽ ̄~)(~ ̄▽ ̄)~ de se 0
89 | <( ̄ˇ ̄)/ de yi 0
90 | 动感光波!!!(  ̄O ̄)ノノ……∞∞OOO))) dggb 0
91 | ( ̄ー ̄(_ _( ̄ー ̄(_ _ [点头] dian tou 0
92 | 跌(┬_┬)↘ die 0
93 | [啪叽~摔一跟头……]((o_ _)'彡☆ die dao 0
94 | [低落] (#`-_ゝ-) di luo nan 0
95 | d=0,=0,=0,=0,=0,( ̄▽ ̄*)b [顶!] ding 0
96 | (。﹏。) [低头] di tou 0
97 | (。_。) [低头] di tou 0
98 | 动感光波!!!(  ̄O ̄)ノノ……∞∞OOO))) dong gan guang bo 0
99 | 三三三三三三三三三4(o|o ) [S奥特曼] dong gan guang bo 0
100 | o((⊙﹏⊙))o. [抖] dou 0
101 | 对不起~ <(_ _)> dui bu qi 0
102 | ||┣(—_\) [金盾!] dun 0
103 | ┬┴┤_·) duo 0
104 | o( ̄ε ̄*) [嘟嘴] du zui 0
105 | (○` 3′○) [嘟嘴] du zui 0
106 | ("▔□▔) e 0
107 | (⊙﹏⊙) e 0
108 | o(` · ~ · ′。)o e 0
109 | 这个…… 呃~~ -______-" e 0
110 | -________-'' e 0
111 | 嗯~ o(* ̄▽ ̄*)o en 0
112 | ○| ̄|_ =0,3 fan gp 0
113 | [放我出去~~~] ||Φ|(|T|Д|T|)|Φ|| fang wo chu qu 0
114 | 防御!(((\( ̄一 ̄)/))) fang yu 0
115 | (  ̄  ̄)σ…( _ _)ノ|壁 fan xing 0
116 | (╯′□`)╯ ┫:·'∵:.┻┻:·'.:┣∵·:. ┳┳☆ fan zhuo 0
117 | ┻━┻︵╰(‵□′)╯︵┻━┻ fan zhuo 0
118 | (╯‵□′)╯""┻━┻☆))>○<) fan zhuo 0
119 | 翻桌!(╯‵□′)╯︵┻━┻ fan zhuo 0
120 | ︿( ̄︶ ̄)︿ fei 0
121 | [飞吻] (* ̄3 ̄)╭ fei wen 0
122 | ヾ(≧奋≦)〃 fen 0
123 | 风魔法! (/-_-)/ξ ξ ξ ξ ξ ξ (+_+ /)/~~~ feng mo fa 0
124 | ε~( ~( ~ ( 卍 )\( ̄▽ ̄ \)[超强风扇吹] feng shan 0
125 | 分>( ̄▽ ̄ =0,  ̄︿ ̄)<裂 fen lie 0
126 | 无敌影分身!((≧(≧▽(≧▽≦(≧▽≦)≧▽≦)▽≦)≦))) fen shen 0
127 | 幻影术!((( ̄( ̄( ̄( ̄ー ̄) ̄) ̄) ̄))) fen shen 0
128 | French Kiss! (* ̄( ̄ *) fk 0
129 | ( ̄ˇ ̄)v fu fu 0
130 | fufu~ ^u^ fu fu 0
131 | ...:.;::..;::: .:.;::….;: ̄)…:.;:□ ̄)( ̄□ ̄*)复活! fu huo 0
132 | 无力扶墙...( _ _)ノ|壁 fu qiang 0
133 | (-@y@) [扶眼镜] fu yan jing 0
134 | .<{=0,....(嘎~嘎~嘎~) ga ga ga 0
135 | ( ̄▽ ̄)~■干杯□~( ̄▽ ̄) gan bei 0
136 | []~( ̄▽ ̄)~* 干杯! gan bei 0
137 | 感动!o(*≧▽≦*)m gan don 0
138 | (* ̄▽)u┌┐ d(▽ ̄*)[高~实在是高!] gao 0
139 | ( σ'ω')σ gao zhuang 0
140 | (′д`σ)σ [告状] gao zhuang 0
141 | o(>O<;; )σ gao zhuang 0
142 | ╰( ̄▽ ̄)╭ 跟你说厚~ gen ni shuo 0
143 | ┳G┻┳F┳┻W┫ gfw 0
144 | <( ̄︶ ̄)↗[GO!] go 0
145 | <( ̄OO, ̄)/[GO!] go 0
146 | Good! o( ̄▽ ̄)d good 0
147 | U·ェ·*U [狗狗] gou gou 0
148 | U·ェ·U [狗狗] gou gou 0
149 | o(*^@^*)o 乖~ guai 0
150 | ______λ......_____ gu dan 0
151 | ┏┛墓┗┓...(((m -__-)m gui 0
152 | ( ̄┰ ̄*) gui lian 0
153 | 滚来滚去……~(~o ̄▽ ̄)~o 。。。滚来滚去……o~(_△_o~) ~。。。 gun 0
154 | ””\\( ̄ー ̄) ( ̄ー ̄)//””[鼓掌] gu zhang 0
155 | [鼓掌]└( ̄  ̄└)(┘ ̄  ̄)┘[鼓掌] gu zhang 0
156 | O口O! ha 0
157 | (#°Д°) ha 0
158 | Σ(⊙▽⊙"a... ha 0
159 | o(*≧▽≦)ツ ha ha 0
160 | ( ̄_ ̄|||) han 0
161 | (寒 ̄ii ̄)彡…彡…彡 han 0
162 | ( ̄▽ ̄") han 0
163 | o(*^▽^*)o [好~~] hao 0
164 | 好吧…… ╮(╯-╰)╭ hao ba 0
165 | (o゜▽゜)o☆[好主意!] hao zhu yi 0
166 | o(* ̄▽ ̄*)o he he 0
167 | 【】\(·ω·`)o hei ban 0
168 | o(* ̄▽ ̄*)ゞ hei hei 0
169 | [黑*客帝国下腰!] ┌(_Д_┌ )┐ hei ke di guo 0
170 | ( ̄。。 ̄)[河马] hema 0
171 | (;′⌒`) heng 0
172 | o( ̄ヘ ̄o#) heng 0
173 | (ε- ) heng 0
174 | ( -з) heng 0
175 | o(* ̄▽ ̄*)o hh 0
176 | ( ̄▽ ̄") hh 0
177 | ^-^ hhh 0
178 | ^O^ hhh 0
179 | 快使用双截棍,┗(`o′)┓哼┏(`○′)┛哼┏(`o′)┓哈┗(`O′)┛兮!! hhhh 0
180 | Hi~ o(* ̄▽ ̄*)ブ hi 0
181 | ○( ^皿^)っHiahiahia.... hia hia 0
182 | ( ̄y▽ ̄)╭ Ohohoho..... ho ho 0
183 | hoho ^O^ ho ho 0
184 | C:\windows\system32\drivers\etc hosts 0
185 | https:// http 0
186 | http:// http 0
187 | [坏人……] ~( TロT)σ huai ren 0
188 | (_ _)。゜zzZ hu hu 0
189 | (/0 ̄)o [呼唤] hu huan 0
190 | 『家』 ~o(▽` o) =0,3 =0,3 =0,3 hui jia 0
191 | (ToT)/~~~[含泪挥手帕] hui shou pa 0
192 | (@^^)/~~~[挥手帕] hui shou pa 0
193 | ●┻┓⌒ Σ┌┘車└┐=0,3 =0,3 =0,3 huo che 0
194 | [火箭筒,发射!](* ̄皿 ̄)=0,Σ口>=0,Σ口>=0,Σ口> huo jian tong 0
195 | [获胜者是……]ヾ( ̄ー ̄)X(^▽^)ゞ huo sheng 0
196 | 无敌肉包拳!(o  ̄3)=0,=0,@))゜ロ゜((@=0,=0,(′ε′ )o jia ji 0
197 | ( ̄~ ̄) 嚼! jiao 0
198 | 加油!(o^^)oo(^^o) jia you 0
199 | Σ(っ °Д °;)っ jing 0
200 | Σ(`д′*ノ)ノ jing 0
201 | Σ( ° △ °|||)︴ jing 0
202 | ┗|*`0′*|┛ ji rou 0
203 | o(′益`)o jiu jie 0
204 | ( -'`-; ) jiu jie 0
205 | <( ̄ ﹌  ̄)@m 就你! jiu ni 0
206 | (┘ ̄︶ ̄)┘└( ̄︶ ̄└)[GiveMeFive!] ji zhang 0
207 | (〃 ̄︶ ̄)人( ̄︶ ̄〃)[击掌] ji zhang 0
208 | [击掌](  ̄ー ̄)人(^▽^ ) ji zhang 0
209 | o(*^▽^*)┛[举手] ju shou 0
210 | [卡拉OK] ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′ ka la ok 0
211 | (@^0^)看好你哦! kan hao ni o 0
212 | 凸(゜皿゜メ) 靠! kao 0
213 | n(*≧▽≦*)n ke ai 0
214 | (°°)~ (°°)~ (°°)~ (°°)~ ke dou 0
215 | 咳咳>< ke ke 0
216 | [K歌] ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)> k ge 0
217 | French Kiss!(* ̄( ̄ *) kiss 0
218 | ˋ( ° ▽、° ) 口水ing... kou shui 0
219 | 好苦~( >﹏<) ku 0
220 | ( >﹏<。)~呜呜呜…… ku 0
221 | (o-ωq)).oO 困,揉眼睛…… kun 0
222 | [苦恼] ( -'`-; ) kun ao 0
223 | 来啦~(~o ̄▽ ̄)~o ~。。。 lai la 0
224 | [来人呐~](o ;′Д`)ノ゛ lai ren na 0
225 | <(* ̄ー ̄)ゞ来呀~[挑衅] lai ya 0
226 | ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)> la la la 0
227 | m( =0,∩王∩=0, )m lao hu 0
228 | (┳_┳)... lei 0
229 | /(ㄒoㄒ)/~~ lei 0
230 | (PД`q。)·。'゜冰天雪地掩面泪奔…… lei ben 0
231 | (  ̄ー ̄)[冷笑] leng xiao 0
232 | [楞住](°ー°〃) leng zhu 0
233 | (*/ω\*)[脸红掩面] lian hong 0
234 | (* ̄^ ̄(* ̄^ ̄(* ̄^ ̄)[列队] lie dui 0
235 | ~%?…,# *'☆&℃$︿★? luan ma 0
236 | o( ̄ˇ ̄)o man zu 0
237 | o(* ̄︶ ̄*)o man zu 0
238 | o( =0,·ω·=0, )m mao 0
239 | o(=0,·ェ·=0,)m mao 0
240 | [毛毛虫](· ·)nnn mao mao chong 0
241 | MIN■■■■■□□MAX max 0
242 | ╮( ̄▽ ̄")╭ 没办法~ mei ban f 0
243 | ||o(*°ω°*)o|Ю [没人在哦?] mei ren 0
244 | (  ̄  ̄)σ…( _ _)ノ|壁 mian bi 0
245 | 喵~o( =0,∩ω∩=0, )m miao 0
246 | 喵~ >▽< miao 0
247 | (/ ̄ˇ ̄)/ mie hhh 0
248 | 咩哈哈哈哈……<(* ̄▽ ̄*)/ mie hhh 0
249 | [蔑视]( ̄_, ̄ ) mie shi 0
250 | [咪咪](。人。) mi mi 0
251 | [秘密] (一-一) mi mi 0
252 | ε(┬┬﹏┬┬)3 命苦... ming ku 0
253 | mmm...f('︶︿︶)o mmm 0
254 | mmm..... mmm 0
255 | [膜拜]_| ̄|○ → _|\○_ → _/\○_ → ____○_ mo bai 0
256 | Capricorn mojiezuo 0
257 | ╰( ̄ω ̄o) [摸摸头] mo mo 0
258 | [摸摸头](~ ̄▽ ̄)ノ mo mo 0
259 | mua! (*╯3╰) mua 0
260 | ヾ(≧へ≦)〃[嗯!] n 0
261 | 嗯!o( ̄︶ ̄)n n 0
262 | (/// ̄皿 ̄)○~[哪~里跑?!] na li pao 0
263 | ☆{{{Д}}} ☆!! [铃铃铃] nao zhong 0
264 | [是不是你?!](σ`д′)σ ni 0
265 | Σ(  ̄д ̄;) 你!! ni 0
266 | 念力~ ( -人-)···-~=~≡~≡ ((+o+))) nian li 0
267 | ……(((\( ̄一 ̄)/)))[念咒] nian zhou 0
268 | [念咒]((( (-h-) ))) nian zhou 0
269 | --\(˙<>˙)/-- niao 0
270 | 无敌捏脸功!<( ‵□′)───C<─___-)|| nie 0
271 | ~( ̄▽ ̄)~* nie 0
272 | ヾ(^▽^*))) 你回来啦~~ ni hui lai la 0
273 | [你你你……] ~( TロT)σ ni ni ni 0
274 | ゜゜┌┴o゜゜゜゜°[溺水] ni shui 0
275 | 捏耳朵!<( ‵□′)>───Cε(┬﹏┬)3 niu er duo 0
276 | [你你你……] ~( TロT)σ nnn 0
277 | (o#゜ 曲゜)o nu 0
278 | MIN■■■■■□□MAX(╯‵□′)╯︵┻━┻ nu 0
279 | ε=0,怒ε=0,怒ε=0,怒ε=0,怒ε=0,( o`ω′)/ nu 0
280 | (#‵′) nu 0
281 | ε=0,怒ε=0,怒ε=0,怒ε=0,怒ε=0,( o`ω′)ノ nu 0
282 | (⊙o⊙)? o 0
283 | _( ̄0 ̄)_[哦~] o 0
284 | Oh~ no!!!! oh no 0
285 | Oh yeah!\(^&^)/ oh ye 0
286 | OK ok 0
287 | λ…λλ…λ…入λλ… pai dui 0
288 | ””\\( ̄ー ̄) ( ̄ー ̄)//””[拍手拍手] pai shou 0
289 | [拍手]└( ̄  ̄└)(┘ ̄  ̄)┘[拍手] pai shou 0
290 | o(*≧▽≦)ツ┏━┓[拍桌狂笑!] pai zhuo 0
291 | ε =0, =0, (づ′▽`)づ pao 0
292 | ヾ(*′▽`*)ノ彡☆ノヽノヽノヽ pao 0
293 | ε=0,ε=0,ε=0,(~ ̄▽ ̄)~ pao 0
294 | [怕怕]━((*′д`)爻(′д`*))━!!!! pa pa 0
295 | ヾ(′▽`* )ノ~ pdr 0
296 | 炎炎炎>(~Q~;;) pen huo 0
297 | Pia!(o ‵-′)ノ”(ノ﹏<。) pia 0
298 | ( ̄ε(# ̄)☆╰╮o( ̄▽ ̄///) pia 0
299 | (~o ̄3 ̄)~ piao 0
300 | (~ ̄▽ ̄)~ piao 0
301 | .....((/- -)/ piao 0
302 | ( ^o)ρ┳┻┳°σ(o^ ) [乒乓球] ping pang 0
303 | ︿( ̄︶ ̄)︿[飘飘然……] ppr 0
304 | ▄︻┻┳═一…… qiang 0
305 | (o ̄Д ̄)<起床! ※=0,○☆(__*)Zzz qi chuang 0
306 | (o ̄ω ̄)○))o(__*)Zzz[推推~起床啦!] qi chuang 0
307 | ( *′д)/o(_ _)ozzZZ…[起床啦!] qi chuang 0
308 | [期待] (☆▽☆) qi dai 0
309 | (ˉ▽ ̄~) 切~~ qie 0
310 | 切~~( ﹁ ﹁ ) ~~~ qie 0
311 | ( ^ ^) _U~~ qing 0
312 | (*  ̄)( ̄▽ ̄*)ゞ[亲亲] qin qin 0
313 | [亲亲]o(* ̄3 ̄)o qin qin 0
314 | (づ ̄ 3 ̄)づ...去去去~ qu 0
315 | 乀(ˉεˉ乀)...去去去~ qu 0
316 | (Д゜(○=0,(゜ 皿゜)=0,○)゜Д゜) quan 0
317 | (╬ ̄皿 ̄)=○#( ̄#)3 ̄) quan 0
318 | 去死!(-__-)=0,@))> o<) qu s 0
319 | 炎炎炎>(~Q~;;) re 0
320 | o(-"-;) [我忍!] ren 0
321 | ノ ̄ー ̄)ノ ⌒ >┼○"☆||壁 reng 0
322 | 看我忍者镖!( ‵▽′)ノ'卍卍卍卍卍卍 Σ(゜д゜;) ren zhe b 0
323 | 无敌肉包拳!(o  ̄3)=0,=0,@))゜ロ゜((@=0,=0,(′ε′ )o rou bao quan 0
324 | 撒花!( ̄▽ ̄)o∠※PAN!=0,.:*:'☆.:*:'★':* sa hua 0
325 | 撒花!*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。 sa hua 0
326 | 散弹发射!!▄︻┻┳═一∵∴∷∶∵ (∵_,∵)>>>> san dan 0
327 | 杀虫剂!( ▼▼)/鹵〈 巛巛巛 ( ◎_x)/ sha chong 0
328 | 我闪!|(·_·) |·_·) |_·) |·) | ) shan 0
329 | [伤心](;′⌒`) shang xin 0
330 | [闪人](* ̄▽ ̄)( ̄▽:;.…::;.:.:::;..::;.:... shan ren 0
331 | [射箭](  ̄ー ̄)——)-=======>-->> she jian 0
332 | 神啊~\( ̄0 ̄)/ she na 0
333 | <(-︿-)> sheng qi 0
334 | [靠!什么东西?!] ( `д′) shen me dong xi 0
335 | [蛇拳]z(-_-z)).....((s-_-)s she quan 0
336 | [是不是你?!](σ`д′)σ shi bu shi ni 0
337 | 石━━∑( ̄□ ̄*|||━━化 shi hua 0
338 | (ˉ▽ˉ;)...[石化ing~] shi hua 0
339 | [视力表]┫♀旦 ̄)σ(呃……) shi li 0
340 | (。_。) [失落] shi luo 0
341 | [手榴弹!]σ~ (`′メ shou liu dan 0
342 | (′д` )…彡…彡[衰] shui 0
343 | shy~ o(*////▽////*)q shy 0
344 | ( ′ 3`) sigh~ sigh 0
345 | (:D)┼─┤死亡中 si le 0
346 | S小孩! (o ‵-′)ノ”(ノ_<。) s xiao h 0
347 | 无敌幻影脚!ヽ(ヽ `д′)ヽ`д′)ヽ`д′)┌┛┌┛┌┛★)`з゜)y t 0
348 | 无影脚!<(  ̄︿ ̄)︵θ︵θ︵θ︵θ︵☆(>口<-) t 0
349 | <(  ̄^ ̄)(θ(θ☆( >_< t 0
350 | [太可怕了]ヽ(*。>Д<)o゜ tai ke pa le 0
351 | 无敌弹簧拳!( ‵Д′)=0,○))~~~~~~Ю))>o<)/ tan huang q 0
352 | ╮( ╯ 3 ╰ )╭ tan shou 0
353 | ㄟ( ▔, ▔ )ㄏ tan shou 0
354 | ╮(╯-╰)╭ tan shou 0
355 | ╮( ̄▽ ̄")╭ tan shou 0
356 | ε=0,ε=0,┏( >_<)┛ tao 0
357 | ε=0,ε=0,ε=0,┏(゜ロ゜;)┛ tao 0
358 | ε=0,ε=0,ε=0,ε=0,ヽ(* ̄o ̄)ノ tao 0
359 | \("▔□▔)/\("▔□▔)/ [逃命啊~~] tao m 0
360 | (ノω<。)ノ))☆.。讨厌啦~ tao yan 0
361 | [陶醉]( *︾▽︾) tao zui 0
362 | (ノへ ̄、)[抽泣] tat 0
363 | o(≧∩≦)o tat 0
364 | o(TヘTo) tat 0
365 | 【TEL】<铃铃铃~ヾ( ̄  ̄*)=0,=0,3=0,3=0,3 tel 0
366 | ☆⌒(*^-゜)v THX!! thx 0
367 | ヾ( )ノ゛天ヾ( °д)ノ゛旋ヾ(°д°)ノ゛地ヾ(д° )ノ゛转ヾ( )ノ゛ tian xuan di zhuan 0
368 | [天助我也~] ヾ(*′▽`*)彡 tian zhu wo ye 0
369 | ( *^-^)ρ(*╯^╰)[不吃!] tiao shi 0
370 | <(* ̄ー ̄)ゞ来啊~[挑衅] tiao xin 0
371 | [偷看](/ω·\*) tou kan 0
372 | [偷看](/ω\*)……… (/ω·\*) tou kan 0
373 | |壁|_☆) tou kui 0
374 | ┬┴┤_·) tou kui 0
375 | [偷拍] Σ[ ◎ ]}ー′) tou pai 0
376 | n(→_←)┛ tou xiang 0
377 | ┗( T﹏T )┛[举手投降] tou xiang 0
378 | o( >﹏<。)┛ tou xiang 0
379 | [吐]( >ρ < ”) tu 0
380 | 0^)吞! tun 0
381 | ヽ(゜▽゜ )-C<(/;◇;)/~[拖走] tuo zou 0
382 | ( ̄┰ ̄*) tu she tou 0
383 | (PД`q。)·。'゜ wa 0
384 | [挖鼻屎] (* ̄rǒ ̄) wa bi shi 0
385 | 哇卡卡卡卡卡……o((≧▽≦o) 太好笑了!! wa kkk 0
386 | <( ̄▽ ̄)/ wa kkk 0
387 | 哇咧!Σ(⊙▽⊙"a... wa lie 0
388 | 万岁!*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。 wan sui 0
389 | ∥wc∥ o(- -o) =0,з =0,з =0,з wc 0
390 | ∥WC||_·)╯去下厕厕…… wc 0
391 | 喂!(#`O′) wei 0
392 | [喂饭]( *^-^)ρ(^0^* ) wei fan 0
393 | ( *^-^)ρ(*╯^╰)[不吃!] wei fan 0
394 | (﹁"﹁) wei guan 0
395 | 围观!( → →) wei guan 0
396 | (← ← )围观! wei guan 0
397 | ╥﹏╥... wei qu 0
398 | [吻别](* ̄;( ̄ *) wen bie 0
399 | σ(⌒ー⌒) wo 0
400 | [呃~我……]σ(-_-メ) wo 0
401 | [我?]σ(· ·?) wo 0
402 | (。﹏。*) 我错了…… wo cuo le 0
403 | ||ヽ(* ̄▽ ̄*)ノミ|Ю[我回来啦~] wo hui lai la 0
404 | 我来了~(~ ̄▽ ̄)~ wo lai le 0
405 | @/" wo niu 0
406 | o( ̄ヘ ̄o#) 握拳! wo q 0
407 | o( ̄ヘ ̄o* )[握拳!] wo quan 0
408 | wow~ ⊙o⊙ wow 0
409 | ↑↑↓↓←→←→BA...┗( -o-)┛无敌! wu di 0
410 | [无奈]╮(╯-╰)╭ wu nai 0
411 | 无影脚!<(  ̄︿ ̄)︵θ︵θ︵θ︵θ︵☆(>口<-) wyj 0
412 | (╯▽╰ ) 好香~~ xiang 0
413 | [享受](╯▽╰ ) xiang shou 0
414 | ……o((≧▽≦o) 太好笑了!! xiao 0
415 | 【小黑屋】ヽ( ̄︿ ̄ )—C<(/;◇;)/ xiao hei wu 0
416 | [消失](* ̄□ ̄)( ̄□:;.…::;.:.:::;..::;.:... xiao shi 0
417 | ㄟ( ▔, ▔ )ㄏ xiao xin 0
418 | [小新]<( ̄︶ ̄)↗ xiao xin 0
419 | [黑*客帝国下腰!] ┌(_Д_┌ )┐ xia yao 0
420 | [喝西北风]( ′Д`)彡 xi bei feng 0
421 | [邪恶]( ‵▽′)ψ xie e 0
422 | 谢啦!!☆⌒(*^-゜)v xie xie 0
423 | (﹁"﹁) xie y 0
424 | ( ̄. ̄)+ xie y 0
425 | ( ﹁ ﹁ ) ~→ xie y 0
426 | ...ψ(。。 ) xie zi 0
427 | o(* ̄▽ ̄*)o xing fu 0
428 | ε=0,( ̄。 ̄;A 呼~幸好幸好…… xing hao 0
429 | (゜゜ )心(。。)神(゜゜ )不(。。)宁"... xin shen bu ning 0
430 | ( ╯▽╰)[欣慰] xin wei 0
431 | (+(工)+╬) xiong 0
432 | (* ̄(エ) ̄) xiong 0
433 | o(*////▽////*)q xiu 0
434 | p(# ̄▽ ̄#)o xiu 0
435 | ╳╳○○ xxoo 0
436 | (* ̄▽ ̄)y y 0
437 | (* ̄︶ ̄)y y 0
438 | ^_^)y y 0
439 | (-@y@) [扶眼镜] yan jing 0
440 | (*/ω\*)[脸红掩面] yan mian 0
441 | ━┳━ ━┳━ yan shen 0
442 | [噎死] ( *⊙~⊙) ye si 0
443 | Yes,sir! <( ̄O ̄)/ yes sir 0
444 | [噎住] ( *⊙~⊙) ye zhu 0
445 | ( ̄ム ̄) [鹰钩鼻] ying gou bi 0
446 | 忍术~隐!( ̄人 ̄)( ̄人:.;:…( ̄...:.;::..;::: .:;.…::;.:..:;.:... yin shen 0
447 | 隐身!(* ̄□ ̄)( ̄□:;.…::;.:.:::;..::;.:... yin shen 0
448 | ヽ( ̄ω ̄( ̄ω ̄〃)ゝ yi qi 0
449 | ╭(′▽`)╭(′▽`)╯ yi qi 0
450 | (^U^)ノ~YO yo 0
451 | (o゜▽゜)o☆[有了!] you le 0
452 | ||o(*°▽°*)o|Ю [有人吗?] you ren ma 0
453 | 哟西!(9 ̄^ ̄)9 yo xi 0
454 | >°)))>彡 yu 0
455 | o(一︿一+)o 怨.念.... yuan nian 0
456 | (((φ(◎ロ◎;)φ))) yun 0
457 | 晕!@o@" yun 0
458 | [运动]╔囧╗╔囧╝╚囧╝╚囧╗ yun dong 0
459 | 早安~~~ o(* ̄▽ ̄*)ブ zao an 0
460 | [早点回来哦~](~ ̄(OO) ̄)ブ zao dian hui lai o 0
461 | X﹏X 糟糕! zao gao 0
462 | (╯‵□′)╯炸弹!···*~● zha dan 0
463 | ˋ( ° ▽、° ) (o( ̄▽ ̄///(斩!!) zhan 0
464 | 涨( ̄︶ ̄)↗ zhang 0
465 | Σ[ ◎ ]} zhao xiang 0
466 | ο(=0,·ω<=0,)ρ⌒☆[媚眼] zha yan 0
467 | [真哒?!] o(〃'▽'〃)o zhen da 0
468 | (o>ε(o>u(≧∩≦) [振奋] zhen fen 0
469 | 真空波动拳!( `o′){ ···-=≡)) zhen kong bo dong quan 0
470 | ━━(o_ _)o━━(o―_―)o━━(9 ̄ー ̄)9[振作!] zhen zuo 0
471 | [就你好了~] (@゜▽゜) zhi 0
472 | [就是他!] (@`д′) zhi 0
473 | (﹁ ﹁ )σ[那边那个] zhi 0
474 | [交通志愿老大妈指挥ing...] (o^~^)尸" zhi hui jiao tong 0
475 | [两罐纸星星](*ˉ﹃ˉ)_☆☆ zhi xing xing 0
476 | ( ゜,_ゝ゜) [痣长毛] zhi zhang mao 0
477 | [皱眉](-"-) zhou mei 0
478 | [猪]^(* ̄(oo) ̄)^ zhu 0
479 | W( ̄_ ̄)W zhua 0
480 | [抓狂]"o((>ω< ))o" zhua kuang 0
481 | [抓狂]o(>@<)o zhua kuang 0
482 | ┳G┻F┳W┫☆(ノ﹏<。) zhuang qiang 0
483 | o(°▽、°o)....+(( ̄﹏ ̄m )~ 你给我回来! zhui 0
484 | --==≡≡〈〈《( / ̄皿 ̄)=0,O));>o<)/ zhui sha 0
485 | o(°▽、°o)....+(( ̄﹏ ̄m ) zhui sha 0
486 | …〒_〒…‵o′-一┳═┻︻▄[畏罪自杀…] zi sha 0
487 | [醉拳]ヨロ (*~▽~)ノ ヨロ ヽ(~▽~*)ヨロ (*~▽~)―〇 ☆ バシ ))>口<) zui quan 0
488 | ZZzz…(。-ω-)..ooO((【·:*:~夢~:*:·】)) zuo meng 0
489 | [足球] ( · ·)L☆ .....○ 冂 zu qiu 0
490 |
--------------------------------------------------------------------------------
/data/custom_phrase_dict_data.txt:
--------------------------------------------------------------------------------
1 | ao wu ┗<(=`O′=)>┛
2 | mo bai m<(_ _)>m
3 | bao bao <(=′▽')爻 (`▽`=)>
4 | bao bao <(=*′д`)爻(′д`*=)>
5 | qiang bi ▄︻┻┳═一…… ☆<(= ̄□ ̄=!)>
6 | bao xiao o<(*≧▽≦)>ツ
7 | she ji <(!= ̄□ ̄)o―∈‥oo━━━━━━━☆
8 | e <(ˉ▽ˉ;=)>
9 | kun ao o<<(≧口≦)>>o
10 | nan shou o<(=′益`=)>o
11 | bingo <(=o゜▽゜)o☆[BINGO!]
12 | bi shi <(=¬_¬=)>
13 | bi ti <(= ̄ ‘i  ̄=)>
14 | bi ti <(= ̄ii ̄=)><(= ̄" ̄=)>
15 | fei pang <(= ̄)ε( ̄=)>
16 | bu dong <(=@_@;=)?>
17 | bu guan wo shi ㄟ<(=▔.▔=)>ㄏ
18 | qie ( ̄_, ̄ =)>
19 | bu yao °.°·(((p<(≧□≦)>;q)))·°.°。
20 | yao tou <(= ̄ε ̄ =  ̄3 ̄=)>
21 | cai shen <(=o′┏▽┓`o=)>
22 | can le <(=X﹏X=)>
23 | cha yan lei <(ノへ ̄、=)>
24 | ceng <(≧︶) ̄▽ ̄=)>ゞ
25 | xiao <(≧▽≦)>
26 | chi yao <(。=>︿<)_θ 吃药
27 | chong ε=ε=~\<(=  ̄皿 ̄)/~
28 | zi xin ヾ(′▽`=)>ゝ
29 | mo lei <(=ノへ ̄ =)>
30 | chou yan <(= ̄c ̄)y▂ξ。。。 抽烟
31 | fan qiang ε=ε┣G┻F┳ε=ヽ<(= ̄▽ ̄)ノ┻W┫
32 | chuo nian <(=~ ̄▽ ̄)→) ̄▽ ̄=)>o
33 | chuo →)╥﹏╥=)>
34 | mo fa <( = ̄▽ ̄)o ─═≡※:☆▆▅▄▃▂_
35 | o <(=°ο°=)>
36 | kou shui <(= ̄﹃ ̄=)>
37 | dan ding <(= ̄. ̄=)>
38 | heng heng <(=ˉ^ˉ=)>
39 | pia Pia!<(=o ‵-′)ノ☆
40 | pia ☆乀(‵-′ o=)> Pia!
41 | pia Pia! ☆乀<(=‵-′=)>ノ☆ Pia!
42 | de yi ~( ̄▽ ̄~=)><(=~ ̄▽ ̄)~
43 | de yi <(= ̄ˇ ̄)/
44 | gong ji <(=  ̄O ̄=)ノノ……∞∞OOO)))
45 | dian tou <(= ̄ー ̄<(__<(= ̄ー ̄<(__
46 | die dao <(o__)o彡☆
47 | chan dou o<(=⊙﹏⊙=)>︴o
48 | dui bu qi <(_ _)>
49 | fang yu ||┣(—_\=)>
50 | du zui o( ̄ε ̄=)>
51 | du zui <(=○`3′○)
52 | dai <(=⊙_⊙=)>
53 | mian bi <(= ̄_ ̄)σ…<( _ _)ノ|
54 | fan zhuo <(=╯′皿`)╯ ┫:·'∵:.┻┻:·'.:┣∵·:. ┳┳☆
55 | fan zhuo ┻━┻︵╰<(=‵Д′=)>╯︵┻━┻
56 | fan zhuo <(=╯‵Д′)╯""┻━┻☆))>○<)
57 | fan zhuo <(=┘ ̄Д ̄)┘╧═╧
58 | fei ︿<(= ̄︶ ̄=)>︿
59 | fei wen <(= ̄3 ̄)╭❤
60 | feng mo fa <(=/-_-)/ξ ξ ξ ξ ξ ξ (+_+ /)>/
61 | feng mo fa ε~(~(~(卍)\( ̄▽ ̄\)>
62 | ying fen shen ((<(≧<(≧▽<(≧▽≦<(≧▽≦)>≧▽≦)>▽≦)>≦)>))
63 | gan bei <(= ̄▽ ̄=)>~■☆□~<(= ̄▽ ̄=)>
64 | gan bei []~<(= ̄▽ ̄~=)>
65 | tan tian <(=*`▽')u┳━┳d('▽`*=)>
66 | shi ta <(=σ'ω')σ
67 | shi ta <(=σ′д`)σ
68 | guai bao bao o<(=*^@^*=)>o
69 | gui ┏┛墓┗┓…(=<(=<(=m -__-)m
70 | tu she tou <(= ̄┰ ̄=)>
71 | gun lai gun qu 滚来滚去。。<(=~o ̄▽ ̄=)~o 。。滚来滚去。。o~(=_△_o~=)>
72 | he he <(= ̄▽ ̄"=)>
73 | hao zhu yi <(=o゜▽゜)o☆
74 | miao wu <(=′⌒`=)>
75 | heng o(= ̄ヘ ̄o#)>
76 | shuang jie gun ┗<(=`o′=)>┓哼 ┏<(=`○′=)>┛哼┏<(=`o′=)>┓哈┗<(=`O′=)>┛兮!!
77 | da xiao <(=^皿^=)っ
78 | yo <(=  ̄y▽ ̄)╭
79 | shui jao <(O_ _)0。゜zzZ
80 | hu huan <(=/ ̄o ̄=)/
81 | fei ~o=(`▽`o=)>~=3=3=3
82 | huo jian tong [火箭筒,发射!]<(=# ̄皿 ̄)=Σ 口>=Σ口>=Σ口>
83 | he ti quan <(=o ̄3')==@))゜ロ゜((@==(′ε′ o=)>
84 | jiao <(= ̄~ ̄=)>
85 | jia you <(= o^_^)o~|| 加油 ||~o(^_^o =)>
86 | jing Σ<(=っ°Д °)っ
87 | jing Σ<(= ° △ °|||)>︴
88 | qi liang <(=-'`-=)>
89 | ji zhang <(=┘ ̄︶ ̄)┘└( ̄︶ ̄└=)>
90 | ji zhang <(=〃 ̄︶ ̄)人( ̄︶ ̄〃=)>
91 | ju shou o(*^▽^*)┛
92 | chi fan [吃饭鸟]……(((((ヾ<( =o·ェ·)=o ┏━┓
93 | ka la ok [卡拉OK] ...φ( ̄0 ̄*=)>啦啦啦_φ<(=* ̄0 ̄)′
94 | o <(=@^0^)
95 | bi shi 凸(゜皿゜=メ)>
96 | kou shui ˋ<(=° ▽、°=)>
97 | miao wu <(=>﹏<=)>
98 | miao wu <( >﹏<。=)>
99 | rou yan jing <(=o-ωq=)>
100 | lei <(=┳_┳=)>
101 | shang xin <(=;′⌒`)
102 | leng xiao <(= ̄ー ̄)
103 | yan mian <(=*/ω\*=)>
104 | lie dui <(= ̄^ ̄<(= ̄^ ̄<(= ̄^ ̄=)>
105 | xi xi <(= ̄ˇ ̄=)>
106 | xiao mao <(=·ェ·=)>
107 | zhu mao o<(=°ω°=)>0
108 | fu qiang <(= ̄_ ̄)σ…<( _ _)ノ|
109 | jing Σ<(= ̄д ̄=!)>
110 | hao a ヾ(^▽^*=)>
111 | nie <(=‵□′)>───Cε=┬﹏┬)>
112 | yao ya qie chi <(=o#゜ 曲゜)o
113 | fen nu MIN■■■■■□□MAX<(=╯‵皿′)╯︵┻━┻︵┻━┻︵┻━┻
114 | nu ε=怒ε=怒ε=怒ε=怒ε=<(=o`ω′)/
115 | o <(='_'=)?>
116 | qie <( ˉ▽ ̄~)> 切~~
117 | qing qing <(=^_^*(^=)>☆
118 | zuo you kai gong <(Д゜(○=<(=゜ 皿゜=)>=○)゜Д゜)>
119 | zou <(╬ ̄皿 ̄)=○#)3 ̄)>
120 | ren o(-"-=)>
121 | jing ya Σ(゜д゜=!)>
122 | cang |<(=·_·=)> |·_·=)> |_·=)> |·=)> |>
123 | kun ao <(=-︿-=)>
124 | pao ε=ε=ε=┏<(=゜ロ゜)┛
125 | lei ben (PД`q。=)>·。'゜
126 | a Σ<(=⊙▽⊙)"
127 | sa hua *★,°*:.☆\<(= ̄▽ ̄=)>/$:*.°★* 。
128 | duo |∥|∥|_·=)>
129 | wei xiao <(=⌒_⌒=)>
130 | ding <(=﹁"﹁=)>
131 | lei mu <(=╥﹏╥=)>
132 | y <(=~ ̄▽ ̄)~
133 | heng o( ̄ヘ ̄o=)>
134 | o <(=⊙o⊙=)>
135 | miao wu <(=ㄒ﹏ㄒ=)>
136 | cai <(= ̄︿ ̄)︵θ︵θ︵θ︵θ︵☆(>口<=)>
137 | shuang shou xian zhuo ┴──┴╰<(= ̄Д ̄=)>╯┴──┴
138 | xian zhuo <(=┘ ̄Д ̄)┘╧═╧
139 | emo <(= ‵▽′)ψ
140 | xie la 谢啦!!☆⌒<(=*^-^)v
141 | xin shen bu ning <(゜゜ )>心(。。)>神<(゜゜ )>不(。。)>宁"...
142 | hai xiu o<(=////▽////=)>o
143 | y <(=^_^)y
144 | cheng yan jing <(=-@y@)
145 | kan bu jian <(=/0\=)>
146 | yin shen <(= ̄□ ̄)<(= ̄□:;.…::;.:.:::;..::;.:...
147 | hao <(=o゜▽゜)o☆
148 | xuan yun <(=◎ロ◎=)>
149 | shou shang <(=X﹏X=)>
150 | zha dan <(=╯‵□′)╯炸弹!···*~●
151 | zhen zuo <(=o_ _)o→<(=o―_―)o→<(=9 ̄ー ̄)9[振作!]
152 | zhi <(=﹁"﹁=)σ
153 | yang tou <(= ̄﹌ ̄=)>
154 | kai xing <(=o^_^)o
155 | xiao se <(=-"-=)>
156 | bu yao >ω<=)>o"
157 | tian xuan di zhuan ヾ<( )ノ゛天ヾ<(=°д)ノ゛旋ヾ<(=°д°)ノ゛地ヾ(д°=)>ノ゛转ヾ<( )ノ゛
158 | shui jiao ZZzz…<(。=-ω-)..ooO((【·:*:~ 夢~:*:·】))
159 | ti qiu <(=· ·)L☆ .....○ 冂
160 | bu shi <(=⊙~⊙)
161 | da ha qian [打呵欠]<( _ _ )><(=- . -=)><(=~ O ~=)>……<(=- . -=)>
162 | lei liu man mian <(o ;′Д`)ノ
163 | wu di ↑↑↓↓←→←→BA…┗<(=-o-)┛无敌!
164 | nian li gong ji <(=-人-)···-~=~≡~≡ (<(=+o+=)>))
165 | lao fang ||Φ|<|(|T|Д|T|)|>|Φ||
166 | ho <(= `0‘)ノ
167 | jue zui <(= ̄︿ ̄=)>
168 | jia you <(=9 ̄^ ̄)9
169 | nian zhou ((( <(=-h-=)> )))
170 | ji ti ju shou <(=·_·)ノ_·)ノ_·)ノ_·)ノ_·)ノ
171 | shen shou <(=*^-^)ρ
172 | dui <(= ̄ー ̄)人(^▽^=)>
173 | kai xing σ(=⌒ー⌒=)>
174 | zhe σ(-_-メ=)>
175 | ha <(=╯▽╰=)>
176 | wu nai ╮<(=╯-╰=)>╭
177 | cao 凸(艹皿艹=)>
178 | bi zui <(=⊙x⊙=)>
179 | xia mi (°ー°〃=)>
180 | fen ヾ<(≧奋≦)>〃
181 | de se <(= *︾▽︾)
182 | chang ge ♪q(^_^q=)><(=p^-^)p♪q(^-^q=)><(=p^_^)p♪
183 | bian ta <(= ̄ε( ̄#)☆╰╮o(= ̄皿 ̄///)>
184 | kun <(=﹌○﹌=)>
185 | qian <(=¥▽¥=)>
186 | lei hua <(%>_<%)>
187 | qing zu *:.☆\<(= ̄▽ ̄=)>//$:*.°★*~
188 | yo <(づ ̄ ³ ̄)>づ
189 | sha xiao <(= ̄▽ ̄=)>
190 | hai xiu <(# ̄▽ ̄#)>
191 | guo bao <(=▼-▼=)>☭[国宝]
192 | hei xian <(= ̄_ ̄|||)>
193 | xie zi <(=#_#)ψ
194 | xi huan <(=❤w❤=)>
195 | jiong o<(=╯□╰=)>o
196 | hai xiu <(▰▰ ̄▽ ̄▰▰)>
197 | xiong mao yan <(=⓿_⓿=)>
198 | nan shou <(=∥ರ﹏ರ)σ
199 | de yi <(▰˘◡˘▰)>
200 | kan bu jian <(=೧ᆸ೧=)>
201 | ha ๐<(=๏ᆷ๏=)>๐
202 | bu yao <(=/๑ᆷ๑\)
203 | ha <(=OᆸO=)>
204 | ni kan kan ni <(=゚∀゚)σ
205 | fa dai <(=˚_˚=)>
206 | a (>_<)
207 | a ⊙▂⊙
208 | a ⊙0⊙
209 | aa w(゚Д゚)w
210 | aaa o((>ω< ))o
211 | aaa o(≧口≦)o
212 | aaa O(≧口≦)O
213 | ai ╮(╯_╰)╭
214 | ai ╮(﹀_﹀)╭
215 | ai ni ヾ(๑╹◡╹)ノ"♡
216 | ai yo ( ̄y▽, ̄)╭ 哎哟哟……
217 | an 安啦~~~ o(* ̄▽ ̄*)ブ
218 | ano (.. )"~えっと、あのぉ・・・
219 | ao (>▽<)
220 | ao ´◔ ‸◔`
221 | ao ┗|`O′|┛ 嗷~~
222 | ao ヽ(・∀・)メ
223 | ao ヾ(≧O≦)〃嗷~
224 | ao \(◎o◎)/
225 | a xin ლ(•̀ _ •́ ლ)
226 | ba ga l(。-ω-)l
227 | bai (o^0^o)/~~~~~~~バイバ~イ!!
228 | bai (ㄏ ̄▽ ̄)ㄏbyeㄟ( ̄▽ ̄ㄟ)
229 | bai ヾ( ̄▽ ̄)Bye~Bye~
230 | bai bai (o_ _)ノ
231 | bai le (o_ _)ノ
232 | bang (๑•̀ㅂ•́)و✧
233 | bao bao \(T︶T*\))抱抱~
234 | bao bao \( ̄︶ ̄)/ 抱抱~
235 | bao bao \( ̄︶ ̄*\))抱抱~
236 | bao bao \( ̄︶ ̄)/
237 | bao tou ▄︻┻┳═一…… ☆(>○<)
238 | bao xiao o(*≧▽≦)ツ
239 | bao xiao ヾ(≧▽≦*)o
240 | bei (;´д`)ゞ
241 | bei zi (:з[____]
242 | ben (~ ̄(OO) ̄)ブ
243 | ben dan (っ*´Д`)っ
244 | beng kui o(≧口≦)o
245 | ben ren ヾ(´∀`o)+
246 | biao <( ̄3 ̄)> 表!
247 | bie (>﹏<)
248 | bie chao <(-︿-)>
249 | bie ju (>﹏<)
250 | bie ku < (  ̄︶ ̄ ) ╱ ( o 〒﹏〒 o )
251 | bie zou _____λ......___丬 别走啊~~
252 | bie zui (* ̄︿ ̄)
253 | bingo (o゜▽゜)o☆[BINGO!]
254 | bing zhang (눈_눈)
255 | bi ti ( ̄ ‘i  ̄;)
256 | bi zui (⊙x⊙;)
257 | bo bo (*  ̄3)(ε ̄ *)
258 | bu chi ( *^-^)ρ(*╯^╰)
259 | bu dong (@_@;)
260 | bu hao yi si o( ̄┰ ̄*)ゞ
261 | bu kai xin (๑´╹‸╹`๑)
262 | bu kai xin (。•́︿•̀。)
263 | bu kai xin  ̄へ ̄
264 | bu kan (/▽\)
265 | bu man (* ̄︿ ̄)
266 | bu man (# ̄~ ̄#)
267 | bu shi wo ㄟ( ▔, ▔ )ㄏ
268 | bu shuang (*  ̄︿ ̄)
269 | bu song ₍₍ ◝( ゚∀ ゚ )◟⁾⁾不送
270 | bu xie ( ̄_, ̄ )
271 | bu xing l (+.+)(-.-)(_ _) ..zzZZ もうだめ
272 | bu yao a ヽ(≧□≦)ノ
273 | bu yao a 不>( ̄ε ̄ =  ̄3 ̄)<要
274 | bu zhi dao ◐▽◑
275 | ca 凸(艹皿艹 )
276 | cai zhi dao (*゜ー゜*)
277 | cao 凸(艹皿艹 )
278 | ca yan lei (ノへ ̄、)
279 | ceng ( * ̄▽ ̄)((≧︶≦*)
280 | ceng ( * ̄▽ ̄)((≧︶≦*) [蹭]
281 | ceng [蹭](*≧︶≦))( ̄▽ ̄* )ゞ
282 | cha ×
283 | cha yao <)。(>
284 | chi diao ψ(`∇´)ψ
285 | chi fan (((((ヾ( o=^•ェ•)o ┏━┓
286 | chi le (* ̄ω ̄)
287 | chi yao (。>︿<)_θ[吃药]
288 | chong chu ___*(  ̄皿 ̄)/#____
289 | chou ( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)
290 | chou ┌|*´∀`|┘
291 | chou mei (o≖◡≖)
292 | chou ni 抽!!( ̄ε(# ̄)☆╰╮( ̄▽ ̄///)
293 | chou qi (ノへ ̄、)
294 | chou qi (ノへ ̄、)[抽泣]
295 | chuai <(  ̄^ ̄)(θ(θ☆( >_<
296 | chun ku (๐॔˃̶ᗜ˂̶๐॓)
297 | chuo →)╥﹏╥) [戳]
298 | chuo lian →)╥﹏╥)
299 | da bai (●─●)
300 | da gai (・-・*)
301 | da he qian (_ _)( - . - )(~O~) ……( - . - )
302 | dai ━┳━ ━┳━
303 | dai zhi ( ̄△ ̄;)
304 | da ji (。_。)
305 | da ku ━┳━ ━┳━
306 | dan ding ━━( ̄ー ̄*|||━━
307 | dang ran (¯^¯ )
308 | dang ran <(ˉ^ˉ)>
309 | da ni ( ,,´・ω・)ノ"(´っω・`。)
310 | dao Σ(っ °Д °;)っ
311 | da xiao yan o_O
312 | deng deng ...(* ̄0 ̄)ノ[等等我…]
313 | de se ʅ(´◔౪◔)ʃ
314 | de se ~( ̄▽ ̄~)(~ ̄▽ ̄)~
315 | de yi (*˘︶˘*)
316 | de yi <( ̄ˇ ̄)/
317 | de yi <( ̄︶ ̄)>
318 | de yi v( ̄︶ ̄)y
319 | dian tou ( ̄ー ̄(_ _( ̄ー ̄(_ _
320 | die (┬_┬)↘
321 | die dao ……]((o_ _)'彡☆
322 | di luo (#`-_ゝ-)
323 | ding d=====( ̄▽ ̄*)b
324 | di tou (。﹏。)
325 | di tou (._.〃)ゝ…
326 | dou o((⊙﹏⊙))o.
327 | du °
328 | dui <(^-^)>
329 | dui bu qi (。・_・。)ノ
330 | dui bu qi (>人<;)
331 | du zui o( ̄ε ̄*)
332 | du zui (○` 3′○)
333 | e ("▔□▔)
334 | e (°ー°〃)
335 | e (๑-﹏-๑)
336 | e (⊙﹏⊙)
337 | e (。﹏。*)
338 | e -________-''
339 | e o(` · ~ · ′。)o
340 | e ⊙︿⊙
341 | eee (⊙﹏⊙)
342 | eee -________-''
343 | ei (´◔౪◔)۶
344 | en ( ´◔ ‸◔`)
345 | en (✩´•௰•`✩)
346 | en O(∩_∩)O嗯!
347 | en ヾ(≧へ≦)〃[嗯!]
348 | en 嗯~ o(* ̄▽ ̄*)o
349 | en 嗯!o( ̄︶ ̄)n
350 | en en (♡˙︶˙♡)
351 | en en <(@ ̄︶ ̄@)>
352 | en heng ( ̄ー ̄)ノ~~マ☆’.・.・:★
353 | en na 嗯~ o(* ̄▽ ̄*)o
354 | fan dui (゚Д゚*)ノ
355 | fang kuai ■
356 | fang kuai □
357 | fang pi ○| ̄|_ =3
358 | fang wo chu qu ||Φ|(|T|Д|T|)|Φ||
359 | fan xing (  ̄  ̄)σ…( _ _)ノ|壁
360 | fan zhuo ┻━┻︵╰(‵□′)╯︵┻━┻
361 | fei ︿( ̄︶ ̄)︿
362 | fei wen (* ̄3 ̄)╭
363 | fei ya fei ₍₍◞( ˙ ꒳ ˙ )◟₎₎ ⁽⁽◝( ˙ ꒳ ˙ )◜⁾⁾
364 | fen ′
365 | fen lie 分>( ̄▽ ̄ =  ̄︿ ̄)<裂
366 | fen shou ( ´・・)ノ(._.`)
367 | fu di _(:з」∠)_
368 | fu e (☆´益`)c
369 | fu qiang ...( _ _)ノ|壁
370 | ga ga .<{=....(嘎~嘎~嘎~)
371 | gan bei ( ̄▽ ̄)~■干杯□~( ̄▽ ̄)
372 | gan bei []~( ̄▽ ̄)~*
373 | gan bei []~( ̄▽ ̄)~* 干杯!
374 | gao (* ̄▽)u┌┐ d(▽ ̄*)
375 | gao xing φ(゜▽゜*)♪
376 | gao zhuang ( σ'ω')σ
377 | gen ni shuo ╰( ̄▽ ̄)╭
378 | go <( ̄︶ ̄)↗[GO!]
379 | good Good! o( ̄▽ ̄)d
380 | good o( ̄▽ ̄)d
381 | gou √
382 | gou gou U•ェ•*U
383 | gou le = =#
384 | guai o(*^@^*)o
385 | guai o(*^@^*)o 乖~
386 | gui ┏┛墓┗┓...(((m -__-)m
387 | gui lian ( ̄┰ ̄*)
388 | gui lian (→ܫ←)
389 | gun (~o ̄▽ ̄)~o 。。。滚来滚去……o~(_△_o~) ~。。。
390 | gun 滚来滚去……~(~o ̄▽ ̄)~o 。。。滚来滚去……o~(_△_o~) ~。。。
391 | ha ( ˘•ω•˘ )
392 | ha (  ̄▽ ̄)"
393 | ha (,,Ò‿Ó,,)
394 | ha (´・ω・`)
395 | ha >▽<
396 | ha ha >^.^<
397 | ha ha \(≧▽≦)/
398 | ha ha o(*≧▽≦)ツ
399 | ha ha φ(≧ω≦*)♪
400 | ha ha ヾ(≧▽≦*)o
401 | ha ha ha (゜∀。)
402 | ha ha ha ha *´∀`)´∀`)*´∀`)*´∀`)
403 | hai (;_;)/~~~
404 | hai (=゜ω゜)ノぃょぅ
405 | hai (。・∀・)ノ゙
406 | hai \(( °∀° ))ノ
407 | hai ヾ(≧∇≦*)ゝ
408 | hai xiu (*/ω\*)
409 | hai xiu (′▽`〃)
410 | hai xiu (✿◡‿◡)
411 | hai xiu o(*////▽////*)q
412 | hai xiu (# ̄▽ ̄#)
413 | han (-_-;)
414 | han ( ̄_ ̄|||)
415 | han ( ̄▽ ̄")
416 | han ( ̄▽ ̄|||)
417 | han = =b
418 | han |(*′口`)
419 | han Σ( ° △ °|||)︴
420 | han si (lll¬ω¬)
421 | han si |(*′口`)
422 | han si Σ( ° △ °|||)︴
423 | hao o(*^▽^*)o [好~~]
424 | hao \(⌒∇⌒)/
425 | hao a (^o^)
426 | hao ba (。_。)
427 | hao ba (・-・*)
428 | hao ba 好吧…… ╮(╯-╰)╭
429 | hao chi (๑´ڡ`๑)
430 | hao de (u‿ฺu✿ฺ)
431 | hao de (゜▽^*))
432 | hao di (u‿ฺu✿ฺ)
433 | hao di (゜▽^*))
434 | hao kai xin (*^▽^*)
435 | hao kai xin ^_________________^
436 | hao ke ai (*^-^*)
437 | hao leng (>_<)}}
438 | hao leng ≡ ̄﹏ ̄≡
439 | hao re ( ̄∇ ̄;)
440 | hao xiang (╯▽╰ )好香~~
441 | hao xi huan (≧∇≦)ノ
442 | hao ye ヽ(✿゚▽゚)ノ
443 | hao zhu yi (o゜▽゜)o☆
444 | hao zhu yi (o゜▽゜)o☆[好主意!]
445 | happy (´▽`ʃ♡ƪ)
446 | he he o(* ̄▽ ̄*)o
447 | he he ╭∩╮( ̄▽ ̄)╭∩╮
448 | hei hei (●⁰౪⁰●)
449 | hei hei o(* ̄▽ ̄*)ゞ
450 | hei hei థ ౪ థ
451 | he ma ( ̄。。 ̄)
452 | heng (。ŏ_ŏ)
453 | heng ,,Ծ‸Ծ,,
454 | heng o( ̄ヘ ̄o#)
455 | heng (︶︿︶)
456 | heng heng (;′⌒`)
457 | heng heng (@ ̄ー ̄@)
458 | heng heng o( ̄ヘ ̄o#)
459 | hi Hi~ o(* ̄▽ ̄*)ブ
460 | hi ヾ(๑╹◡╹)ノ"
461 | hia hia ○( ^皿^)っHiahiahia....
462 | hia hia ○( ^皿^)っHiahiahia…
463 | high (( へ(へ´∀`)へ
464 | ho ho ( ̄y▽ ̄)╭ Ohohoho.....
465 | ho ho ^O^
466 | hu (。-_-。)
467 | hua .:*・✿*゚✿.。゚゚¨゚*✿・*
468 | hua chi (❤´艸`❤)
469 | huai ren [坏人……] ~( TロT)σ
470 | huai ren ~( TロT)σ
471 | huai yi ( ﹁ ﹁ ) ~~~→
472 | huai yi (¬_¬)
473 | huai yi (→_→)
474 | huai yi →_→
475 | huan hu *\ ( ^ v ^ )/*
476 | huan ying ( ^∀^)/欢迎\( ^∀^)
477 | hua quan _〆(´Д` )
478 | hu hu (_ _)。゜zzZ
479 | hu huan (/0 ̄)o [呼唤]
480 | hui jia 『家』 ~o(▽` o) =3 =3 =3
481 | hui jian \(^∀^)メ(^∀^)ノ
482 | hui shou pa (ToT)/~~~
483 | huo che ●┻┓⌒ Σ┌┘車└┐=3 =3 =3
484 | huo jian [火箭筒,发射!](* ̄皿 ̄)=Σ口>=Σ口>=Σ口>
485 | huo sheng ヾ( ̄ー ̄)X(^▽^)ゞ
486 | jia ji (o  ̄3)==@))゜ロ゜((@==(′ε′ )o
487 | jian jj ( *・ω・)✄╰ひ╯
488 | jiao ( ̄~ ̄) 嚼!
489 | jiao ao (‾◡◝)
490 | jia you (ง •_•)ง
491 | jia you *\(^_^)/*
492 | jia you ٩( 'ω' )و
493 | jia you ٩(๑`^´๑)۶
494 | jia you ╭( ・ㅂ・)و
495 | jia you 加油!(o^^)oo(^^o)
496 | jin chi ( ͡° ͜ʖ ͡°)
497 | jing (⊙ˍ⊙)
498 | jing Σ( ° △ °|||)︴
499 | jing Σ(っ °Д °;)っ
500 | jing Σ(`д′*ノ)ノ
501 | jing xi ⊙▽⊙
502 | jing xi ╰(*°▽°*)╯
503 | jiong (´Д`)
504 | ji rou ┗|*`0′*|┛
505 | jiu jie o(′益`)o
506 | jiu ni <( ̄ ﹌  ̄)@m 就你!
507 | jiu shi ヾ(●゜ⅴ゜)ノ
508 | ji zhang (  ̄ー ̄)人(^▽^ )
509 | ji zhang (┘ ̄︶ ̄)┘└( ̄︶ ̄└)[GiveMeFive!]
510 | ji zhang (〃 ̄︶ ̄)人( ̄︶ ̄〃)[击掌]
511 | ji zhang [击掌](  ̄ー ̄)人(^▽^ )
512 | jue zui (〃` 3′〃)
513 | ju gong 〈(_ _)〉
514 | ju shou (.・△・)ノ
515 | ju shou _( ゚Д゚)ノ
516 | ju shou o(*^▽^*)┛
517 | ju shou o(*^▽^*)┛[举手]
518 | kai xin ( ‘◟ ‘)✧
519 | kai xin \(≧ω≦)/
520 | kai xin ╰(*´︶`*)╯
521 | kai xin ◝(*⁰▿⁰*)◜
522 | kai xin <( ̄︶ ̄)/
523 | kai xin <( ̄︶ ̄)>
524 | ka lao k ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′
525 | kan ಠ_ಠ
526 | ke ai n(*≧▽≦*)n
527 | ke dou (°°)~ (°°)~ (°°)~ (°°)~
528 | ke ke 咳咳><
529 | ke wu (〃>目<)
530 | ke wu (=。=)
531 | k ge ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)
532 | kiss !(* ̄( ̄ *)
533 | kong bu ┌(。Д。)┐
534 | kou shui ( ̄﹁ ̄)
535 | kou shui ˋ( ° ▽、° ) 口水ing...
536 | kou shui (¯﹃¯)口水ing
537 | ku ( >﹏<。)~呜呜呜……
538 | ku (*Ծ﹏Ծ)ぐ
539 | ku (٥﹏٥` )
540 | ku //( ㄒ o ㄒ )//
541 | ku Q_Q
542 | ku TAT
543 | ku T^T"///
544 | ku T_T
545 | ku π__π
546 | ku ಥ_ಥ
547 | ku ┭┮﹏┭┮
548 | ku ヾ(。>﹏<。)ノ゙
549 | ku 好苦~( >﹏<)
550 | ku (┬_┬)
551 | kuai le (*^▽^*)
552 | ku le ︸_︸
553 | kun ( ̄o ̄) . z Z
554 | kun le (´ぅω・`)
555 | kun le (~ o ~)~zZ
556 | kun le ( ̄o ̄) . z Z
557 | kun nao ( -'`-; )
558 | kun si le (o-ωq)).oO 困
559 | kun si le (p.-)(p.-)(p.-)
560 | ku qi ~>_<~
561 | ku si (;´༎ຶД༎ຶ`)
562 | la ~\(≧▽≦)/~啦啦啦
563 | lai ᕕ( ᐛ )ᕗ
564 | lai a <(* ̄ー ̄)ゞ来啊~[挑衅]
565 | lai la (~o ̄▽ ̄)~o ~。。。
566 | lai la 来啦~(~o ̄▽ ̄)~o ~。。。
567 | lai le o(゚∀゚)o
568 | lai ren na [来人呐~](o ;′Д`)ノ゛
569 | la la ♪(^∇^*)
570 | la la la ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)>
571 | la la la ♪(^∇^*)
572 | lao hu m( =∩王∩= )m
573 | le (๑´ㅂ`๑)
574 | le φ(≧ω≦*)♪
575 | le he (≧∀≦)ゞ
576 | lei (ρ_・).。
577 | leng {{{(>_<)}}}
578 | leng xiao (  ̄ー ̄)
579 | leng yan ┌( ´_ゝ` )┐
580 | leng zhu (°ー°〃)
581 | leng zhu [楞住](°ー°〃)
582 | lian hong (*/ω\*)
583 | lian hong (*/ω\*)[脸红掩面]
584 | lian hong >//////<
585 | li hai (。^▽^)
586 | liu lei (┬_┬)
587 | liu yan (。人。)
588 | love (੭ु ›ω‹ )੭ु⁾⁾♡
589 | luan ma ~%?…,# *'☆&℃$︿★?
590 | mai m = ̄ω ̄=
591 | man yi (´v`)
592 | man zu (๑¯∀¯๑)
593 | man zu o(* ̄︶ ̄*)o
594 | man zu o( ̄ˇ ̄)o
595 | mao o(=•ェ•=)m
596 | max MIN■■■■■□□MAX
597 | mei ban fa ╮(╯_╰)╭
598 | mei mao ( ・ิω・)ノิิิ
599 | mei ren ┐(T.T ) ( T.T) ノ
600 | mei wei Ψ( ̄∀ ̄)Ψ
601 | mei yan ο(=•ω<=)ρ⌒☆
602 | mian (つω`)~
603 | mian bi (  ̄  ̄)σ…( _ _)ノ|壁
604 | miao (=^_^=)
605 | miao = ̄ω ̄=
606 | miao ~o( =∩ω∩= )m
607 | miao ≡ω≡
608 | miao 喵~ >▽<
609 | miao 喵~o( =∩ω∩= )m
610 | miao o ″
611 | miao wu ≡ω≡
612 | miao xing ren o( =•ω•= )m
613 | mie ha ha (/ ̄ˇ ̄)/
614 | mie ha ha 咩哈哈哈哈……<(* ̄▽ ̄*)/
615 | mie h ha ha <(* ̄▽ ̄*)/
616 | mie shi ( ̄_, ̄ )
617 | ming bai (o゚v゚)ノ
618 | ming ku ε(┬┬﹏┬┬)3
619 | ming ku ε(┬┬﹏┬┬)3 命苦...
620 | ming tian jian (^∀^●)ノシ
621 | mo bai (o´_ _)o)
622 | mo mo <(  ̄︶ ̄)╱(._. )
623 | mo mo [摸摸头](~ ̄▽ ̄)ノ
624 | mo mo ╰( ̄ω ̄o) [摸摸头]
625 | mua (*╯3╰)
626 | mua mua! (*╯3╰)
627 | mua (づ ̄3 ̄)づ╭❤~
628 | na ge (.. )…
629 | na ge  ̄△ ̄
630 | na li pao (/// ̄皿 ̄)○~
631 | nan guo (。í _ ì。)
632 | nao zhong ☆{{{Д}}} ☆!! [铃铃铃]
633 | nei niu man mian 〒▽〒
634 | ni [你你你……] ~( TロT)σ
635 | ni [是不是你?!](σ`д′)σ
636 | ni Σ(  ̄д ̄;) 你!!
637 | niao --(˙<>˙)/--
638 | niao --\(˙<>˙)/--
639 | nie ~( ̄▽ ̄)~*
640 | nie lian <( ‵□′)───C<─___-)||
641 | ni hao (・_・)ノいよぅ
642 | ni hao ( ̄▽ ̄)ノ
643 | ni hao ヾ(´・ω・`)ノ
644 | ni hui lai la ヾ(^▽^*)))
645 | niu ( ఠൠఠ )ノ
646 | niu er duo <( ‵□′)>───Cε(┬﹏┬)3
647 | nu (。•ˇ‸ˇ•。)
648 | nu ε=怒ε=怒ε=怒ε=怒ε=( o`ω′)ノ
649 | o (⊙o⊙)?
650 | o (〓 ̄(∵エ∵) ̄〓)
651 | o _( ̄0 ̄)_[哦~]
652 | o m(o・ω・o)m
653 | o  ̄o ̄
654 | oh no Oh~ no!!!!
655 | oh ye Oh yeah!\(^&^)/
656 | oh yeah ε(*´・∀・`)з゙
657 | oo (≧0≦)//(-_-。)・・・
658 | orz ○| ̄|_
659 | oye (^&^)/
660 | oye ( ゚∀゚) ノ♡
661 | pai (* ̄∇ ̄)ノ
662 | pai shou [拍手]└( ̄  ̄└)(┘ ̄  ̄)┘[拍手]
663 | pai shou ””\( ̄ー ̄) ( ̄ー ̄)//””
664 | pai shou ””\\( ̄ー ̄) ( ̄ー ̄)//””[拍手拍手]
665 | pai zhuo o(*≧▽≦)ツ┏━┓
666 | pai zhuo o(*≧▽≦)ツ┏━┓[拍桌狂笑!]
667 | pao ε = = (づ′▽`)づ
668 | pao ε=ε=ε=(~ ̄▽ ̄)~
669 | papa ━((*′д`)爻(′д`*))━!!!!
670 | pia (*"・∀・)ノ――◎
671 | pia ( ̄ε(# ̄)☆╰╮o( ̄▽ ̄///)
672 | pia Pia!(o ‵-′)ノ”(ノ﹏<。)
673 | piao (~o ̄3 ̄)~
674 | piao (~ ̄▽ ̄)~
675 | piao .....((/- -)/
676 | piao guo .....((/- -)/
677 | ppr ︿( ̄︶ ̄)︿
678 | pu (/≧▽≦)/
679 | qian $_$
680 | qiang ▄︻┻┳═一……
681 | qi chuang ※=○☆(__*)Zzz
682 | qi dai (☆▽☆)
683 | qi dai [期待] (☆▽☆)
684 | qie (¬、¬)
685 | qie (ˉ▽ ̄~) 切~~
686 | qie (ーー゛)
687 | qie ~~( ﹁ ﹁ ) ~~~
688 | qie ╮( ̄▽ ̄)╭
689 | qie 切~~( ﹁ ﹁ ) ~~~
690 | qie ¬_,¬
691 | qi lai ٩(๑`^´๑)۶
692 | qin ( ˘ ³˘)♥
693 | qin ლ(。◕ˇε ˇ◕。ლ)
694 | qin ◕ˇε ˇ◕
695 | qin ♪(´ε` )
696 | qin (づ ̄3 ̄)づ╭❤~
697 | qing ( ^ ^) _U~~
698 | qing mie (´ー∀ー`)
699 | qin qin (* ˘ ³˘)♡
700 | qin qin (*  ̄)( ̄▽ ̄*)ゞ[亲亲]
701 | qin qin [亲亲]o(* ̄3 ̄)o
702 | qin qin o(* ̄3 ̄)o
703 | qiu qiu ni (っ´Ι`)っ
704 | qu (ーー゛)
705 | qu φ(-ω-*)
706 | quan (╬ ̄皿 ̄)=○#( ̄#)3 ̄)
707 | qu si (-__-)=@))> o<)
708 | qu si (/"≡ _ ≡)/~┴┴
709 | qu si (ノ‥)ノ‥‥〓〓〓〓☆ピーーーー
710 | ruo (。・・)ノ
711 | ruo ruo (。・・)ノ
712 | sa hua *★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
713 | sa hua ‧★,:*:‧\( ̄▽ ̄)/‧:*‧°★*
714 | sa hua 撒花!( ̄▽ ̄)o∠※PAN!=.:*:'☆.:*:'★':*
715 | sa hua 撒花!*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。
716 | san dan ▄︻┻┳═一∵∴∷∶∵ (∵_,∵)>>>>
717 | san jiao ▲
718 | san jiao △
719 | shan =└(┐卍^o^)卍
720 | shan |(•_•) |•_•) |_•) |•) | )
721 | shan ✧(≖ ◡ ≖✿)
722 | shang ↑
723 | shang xin (;′⌒`)
724 | shan ren (* ̄▽ ̄)( ̄▽:;.…::;.:.:::;..::;.:...
725 | she na ~( ̄0 ̄)/
726 | she na 神啊~\( ̄0 ̄)/
727 | sheng dan *<|:-)
728 | sheng qi (ー`´ー)
729 | sheng qi <(-︿-)>
730 | sheng qi (`へ´)
731 | shen me dong xi ( `д′)
732 | shen me shi (‧_‧?)
733 | she quan z(-_-z)).....((s-_-)s
734 | she shi du ℃
735 | shi ◟(⁰𠆢⁰∗)
736 | shi ヽ(•̀﹏•́ )ゝ
737 | shi a (゚ー゚)
738 | shi a ヾ(@⌒ー⌒@)ノ
739 | shi a ゚∀゚
740 | shi a shi a ヾ(@⌒ー⌒@)ノ
741 | shi bu shi ni (σ`д′)σ
742 | shi bu shi ni [是不是你?!](σ`д′)σ
743 | shi hua ━━∑( ̄□ ̄*|||━━
744 | shi huai ԅ(¯﹃¯ԅ)
745 | shi luo ( ◞‸◟)
746 | shi luo (。_。)
747 | shi luo (。í _ ì。)
748 | shi ma ( ̄m ̄)
749 | shi ma о∀о
750 | shi ma ⊙▽⊙
751 | shuai (′д` )…彡…彡
752 | shui jiao (¦3ꇤ[▓▓]
753 | shy o(*////▽////*)q
754 | shy shy~ o(*////▽////*)q
755 | si ba ´・∀・)乂(・∀・`
756 | si ba ┴┴︵╰(‵□′)╯︵┴┴
757 | sigh ( ′ 3`) sigh~
758 | soga ▔▽▔
759 | tai bang le ヾ(≧∇≦)〃
760 | tai bang le ㄟ(≧◇≦)ㄏ
761 | tai ke pa le ヽ(*。>Д<)o゜
762 | tang qiang lv _(:驴」∠)_
763 | tang qiang ma _(:马」∠)_
764 | tan shou ┑( ̄Д  ̄)┍
765 | tan shou ╮(╯-╰)╭
766 | tan shou ╮(-_-)╭
767 | tan shou ╮( ̄▽ ̄")╭
768 | tan shou ㄟ( ▔, ▔ )ㄏ
769 | tao ε=ε=ε=┏(゜ロ゜;)┛
770 | tao …(⊙_⊙;)…
771 | tao ヽ(゚∀゚*)ノ━━━ゥ♪
772 | tao a (  ̄ ▽ ̄)o╭╯☆#╰(  ̄﹏ ̄)╯
773 | tao ming \("▔□▔)/\("▔□▔)/ [逃命啊~~]
774 | tao pao ~(□`)~
775 | tao yan (ノω<。)ノ))☆.。
776 | tao yan (ノω<。)ノ))☆.。讨厌啦~
777 | tao yan \(゜ロ\)(/ロ゜)/
778 | tao zui ( *︾▽︾)
779 | tao zui [陶醉]( *︾▽︾)
780 | tat (ノへ ̄、)
781 | tat o(TヘTo)
782 | tat o(≧∩≦)o
783 | thx ☆⌒(*^-゜)v THX!!
784 | ti <(  ̄^ ̄)(θ(θ☆( >_<
785 | ti ヽ(ヽ `д′)ヽ`д′)ヽ`д′)┌┛┌┛┌┛★)`з゜)y
786 | tian a ♪(´∇`*)
787 | tiao shi ( *^-^)ρ(*╯^╰)[不吃!]
788 | tong ku ≧︿≦
789 | tong ku >﹏<
790 | tong yi (。・∀・)ノ
791 | tou kan (/ω\*)……… (/ω•\*)
792 | tou kan [偷看](/ω·\*)
793 | tou kan [偷看](/ω\*)……… (/ω·\*)
794 | tou kui ┬┴┤_•)
795 | tou xiang ٩(͡๏̯͡๏)۶
796 | tou xiang ٩͡[๏̯͡๏]۶
797 | tou xiang ┗( T﹏T )┛
798 | tou xiang ┗( T﹏T )┛[举手投降]
799 | tu ( >ρ < ”)
800 | tui dao (ノ*・ω・)ノ
801 | tun 0^)吞!
802 | tuo zou ヽ(゜▽゜ )-C<(/;◇;)/~
803 | tuo zou ヽ(゜▽゜ )-C<(/;◇;)/~[拖走]
804 | tu she tou ( ̄┰ ̄*)
805 | wa (☆_☆)
806 | wa ╰(*°▽°*)╯
807 | wa ❀‿❀
808 | wa bi shi (* ̄rǒ ̄)
809 | wa bi shi [挖鼻屎] (* ̄rǒ ̄)
810 | wa ka ka <( ̄▽ ̄)/
811 | wan an 0(^o^)~~YA(^0^)~~SU(^○^)~~MI(^_^)
812 | wan an お(ノ ̄0 ̄)ノや(o ̄ ・ ̄)oす(。_ _)。みZZzzzz…
813 | wan shang hao  ̄O ̄)ノ
814 | wan shang hao  ̄O ̄)ノ こんばんは
815 | wan sui 万岁!*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。
816 | wan sui !*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
817 | wc ∥WC||_·)╯去下厕厕……
818 | wei (#`O′)
819 | wei 喂!(#`O′)
820 | wei fan ( *^-^)ρ(*╯^╰)[不吃!]
821 | wei fan ( *^-^)ρ(^0^* )
822 | wei fan [喂饭]( *^-^)ρ(^0^* )
823 | wei guan (← ← )围观!
824 | wei guan (﹁"﹁)
825 | wei guan 围观!( → →)
826 | wei nan ಠ__ಠ
827 | wei qu ╥﹏╥...
828 | wei suo (o´∀`)
829 | wei xiao ◕‿◕
830 | wen bie (* ̄;( ̄ *)
831 | wen bie [吻别](* ̄;( ̄ *)
832 | wo (*゜ロ゜)ノ
833 | wo [呃~我……]σ(-_-メ)
834 | wo [我?]σ(· ·?)
835 | wo v(。・ω・。)
836 | wo σ(⌒ー⌒)
837 | wo cuo le (。﹏。*)
838 | wo cuo le (。﹏。*) 我错了……
839 | wo hui lai la ||ヽ(* ̄▽ ̄*)ノミ|Ю
840 | wo hui lai la ||ヽ(* ̄▽ ̄*)ノミ|Ю[我回来啦~]
841 | wo lai le ~(~ ̄▽ ̄)~
842 | wo lai le 我来了~(~ ̄▽ ̄)~
843 | wo qu o( ̄ヘ ̄o#)
844 | wo quan o( ̄ヘ ̄o* )[握拳!]
845 | wo quan o( ̄ヘ ̄o#) 握拳!
846 | wo shou (≧∀≦*)ノ
847 | wow wow~ ⊙o⊙
848 | wu (,,•́ . •̀,,)
849 | wu ( T___T )
850 | wu (๑′°︿°๑)
851 | wu (。•ㅅ•。)♡
852 | wu ⊙﹏⊙
853 | wu di ↑↑↓↓←→←→BA...┗( -o-)┛
854 | wu gu (o´・ェ・`o)
855 | wu lian (*/ω\*)
856 | wu lian つ﹏⊂
857 | wu nai ╮(╯▽╰)╭
858 | wu nai ╯▂╰
859 | wu nai ╯︿╰
860 | wu shi (☆-v-)
861 | wu wu wu ┭┮﹏┭┮
862 | wu yan (-∀=)
863 | wu yan (* ̄(エ) ̄)
864 | xia (*Φ皿Φ*)
865 | xia (☄⊙ω⊙)☄
866 | xia ↓
867 | xiang (╯▽╰ ) 好香~~
868 | xiang shou [享受](╯▽╰ )
869 | xian zhuo (/‵Д′)/~ ╧╧
870 | xian zhuo (╯‵□′)╯︵┴─┴
871 | xian zhuo (╯-_-)╯╧╧
872 | xiao (^﹏^)"
873 | xiao (´・◡・`)
874 | xiao ……o((≧▽≦o) 太好笑了!!
875 | xiao ≧▽≦
876 | xiao (*∩_∩*)
877 | xiao >▽<
878 | xiao ^▼^
879 | xiao hei wu 【小黑屋】ヽ( ̄︿ ̄ )—C<(/;◇;)/
880 | xiao hei wu ヽ( ̄︿ ̄ )—C<(/;◇;)/
881 | xiao sheng (*・・*)
882 | xiao shi [消失](* ̄□ ̄)( ̄□:;.…::;.:.:::;..::;.:...
883 | xi bei feng [喝西北风]( ′Д`)彡
884 | xie 谢啦!!☆⌒(*^-゜)v
885 | xie e ( ‵▽′)ψ
886 | xie xie 谢啦!!☆⌒(*^-゜)v
887 | xie y ( ﹁ ﹁ ) ~→
888 | xie yan ( ﹁ ﹁ ) ~→
889 | xie yan (﹁"﹁)
890 | xing fen (p≧w≦q)
891 | xing fu o(* ̄▽ ̄*)o
892 | xing hao ε=( ̄。 ̄;A 呼~幸好幸好……
893 | xing xing ★
894 | xing xing ☆
895 | xingxingyan (☆w☆)
896 | xin shen bu ning (゜゜ )心(。。)神(゜゜ )不(。。)宁"...
897 | xin wei ( ╯▽╰)
898 | xin wei ( ╯▽╰)[欣慰]
899 | xiong (* ̄(エ) ̄)
900 | xiong (+(工)+╬)
901 | xiu (◕ฺ‿◕ฺ✿ฺ)
902 | xiu d(∀`d*)─(*b´∀)b
903 | xiu o(*////▽////*)q
904 | xiu p(# ̄▽ ̄#)o
905 | xiu ◕ฺ‿◕ฺ✿ฺ)
906 | ya ٩(●˙▿˙●)۶
907 | ya (*≧m≦*)
908 | ya da (≧∀≦*)ノ
909 | yan jing (-@y@)
910 | yan mian (*/ω\*)
911 | yan mian (*/ω\*)[脸红掩面]
912 | yan shen ━┳━ ━┳━
913 | yao ming yu guo jing ming ( ˘•ω•˘ )ง⁽˙³˙⁾
914 | ye (* ̄▽ ̄)y
915 | ye (* ̄︶ ̄)y
916 | ye (^-^)V
917 | ye ^_^)y
918 | ye ∩__∩y耶~~^^
919 | ye ✌(◔౪◔)✌
920 | ye ヽ(✿゚▽゚)ノ
921 | ye si ( *⊙~⊙)
922 | ye si [噎死] ( *⊙~⊙)
923 | yes sir Yes,sir! <( ̄O ̄)/
924 | ye zhu [噎住] ( *⊙~⊙)
925 | yi (・∀・(・∀・(・∀・*)
926 | yi |ω・`)
927 | ying ying ying (┳_┳)...
928 | ying ying ying /(ㄒoㄒ)/~~
929 | yi qi ヽ( ̄ω ̄( ̄ω ̄〃)ゝ
930 | yi wen ◎−◎?
931 | yo (^U^)ノ~YO
932 | yo ( ̄(エ) ̄)ノ よー
933 | you →
934 | you ーー(^U^)ノーーYO
935 | you le (o゜▽゜)o☆
936 | you le (o゜▽゜)o☆[有了!]
937 | you pie ━━┳ ━━┳
938 | you ren ma ||o(*°▽°*)o|Ю [有人吗?]
939 | yo xi 哟西!(9 ̄^ ̄)9
940 | yu <。 )#)))≦
941 | yuan ○
942 | yuan ●
943 | yuan lai ('-'*)
944 | yuan nian o(一︿一+)o
945 | yuan nian o(一︿一+)o 怨.念....
946 | yu gu tou <*)>> >=<
947 | yun (((φ(◎ロ◎;)φ)))
948 | yun @_@
949 | yun le ( E___E )
950 | zai jian (*^-゚)
951 | zai jian (。・_・)/~~~
952 | zai jian (。・_・)/~~~またね~
953 | zai jian (゚∇^*)
954 | zai jian ┏(^0^)┛
955 | zai jian ヾ(*^▽^*)ノ"☆Bye ☆Bye
956 | zai jian ヾノ。ÒㅅÓ)ノシ
957 | zai xiang ( ' = ' )それは・・・・・ 考える (=_=)う~ん
958 | zan (((o(*゚▽゚*)o)))
959 | zan cheng o(*'▽'*)/
960 | zao ٩(๑`^´๑)۶
961 | zao an (朝´∀`){♪Good Morning♪}(´∀`朝)
962 | zao an 早安~~~ o(* ̄▽ ̄*)ブ
963 | zao dian hui lai [早点回来哦~](~ ̄(OO) ̄)ブ
964 | zao gao X﹏X
965 | zao gao X﹏X 糟糕!
966 | zao shang hao (( ((((((( ρ . - ) おはよう~
967 | zao shang hao (*´∀`)ノ
968 | zen me ( ´∀`)・ω・) ゜Д゜)・∀・) ̄ー ̄)
969 | zha dan (╯‵□′)╯炸弹!•••*~●
970 | zhan ˋ( ° ▽、° ) (o( ̄▽ ̄///(斩!!)
971 | zhang ( ̄︶ ̄)↗
972 | zha ya *(。◕‿-。)"❤
973 | zha yan ο(=·ω<=)ρ⌒☆[媚眼]
974 | zhe ((*・∀・)ゞ→→
975 | zhen da o(〃'▽'〃)o
976 | zhen fen (o>ε(o>u(≧∩≦)
977 | zheng yi (′┏▽┓`●)
978 | zhen hao o(^▽^)o
979 | zhen jing (○´・д・)ノ
980 | zhen zuo ━━(o_ _)o━━(o―_―)o━━(9 ̄ー ̄)9[振作!]
981 | zhe yang a (σ-σ)
982 | zhe yang a ━━┳━━゛_゛━━┳━━
983 | zhe yang me (=′ー`)
984 | zhi (﹁ ﹁ )σ[那边那个]
985 | zhi <( ̄ ﹌  ̄)@m
986 | zhou mei _(:3」∠)_
987 | zhu [猪]^(* ̄(oo) ̄)^
988 | zhu ^(* ̄(oo) ̄)^
989 | zhu ^(oo)^ =(oo)=""" ~(oo)~
990 | zhu a W( ̄_ ̄)W
991 | zhuang qiang ┳G┻F┳W┫☆(ノ﹏<。)
992 | zhuang sha * ( ̄▽ ̄)" ╮
993 | zhuang sha (~ ̄▽ ̄~)
994 | zhua zi ლ(❤◡❤ლ)
995 | zhui o(°▽、°o)....+(( ̄﹏ ̄m )~ 你给我回来!
996 | zhui sha --==≡≡〈〈《( / ̄皿 ̄)=O));>o<)/
997 | zhui sha o(°▽、°o)....+(( ̄﹏ ̄m )
998 | zi lian (◡ᴗ◡✿)
999 | zi pai *(੭*ˊᵕˋ)੭*ଘ
1000 | zi sha …〒_〒…‵o′-一┳═┻︻▄
1001 | zi sha …〒_〒…‵o′-一┳═┻︻▄[畏罪自杀…]
1002 | zou ( ノ・ω・)ノ
1003 | zou ( ̄︶ ̄)↗
1004 | zou la ( ゚д゚)つBye
1005 | zou ni ( ☉_☉)≡☞o────★°
1006 | zou ni O-(/// ̄皿 ̄)☞ ─═≡☆゜★█▇▆▅▄▃▂_
1007 | zou zhe ٩( 'ω' )و
1008 | zou zhe ᕕ( 'ω')ᕗ
1009 | zou zhe ᕕ( ˙꒳˙)ᕗ
1010 | zui jiao (*゚ー゚)
1011 | zuo ←
1012 | zuo meng ZZzz…(。-ω-)..ooO((【·:*:~夢~:*:·】))
1013 | zuo pie ┳━━ ┳━━
--------------------------------------------------------------------------------
/data/lmeee_dict_data.txt:
--------------------------------------------------------------------------------
1 | (。・∀・)ノ
同意
2 | (u‿ฺu✿ฺ)
好的
3 | ヽ(✿゚▽゚)ノ
好耶
4 | (゜▽^*))
好
5 | (゚ー゚)
是啊,同意
6 | ε(*´・∀・`)з゙
oh yeah~
7 | (´v`)
满意
8 | (≧∇≦)ノ
喜欢
9 | o(^▽^)o
真好
10 | ( ̄︶ ̄)↗
大涨
11 | o(* ̄▽ ̄*)o
幸福
12 | (p≧w≦q)
兴奋
13 | ㄟ(≧◇≦)ㄏ
太棒了
14 | (/≧▽≦)/
噗~
15 | ( ゚∀゚) ノ♡
噢耶
16 | o(* ̄︶ ̄*)o
满足
17 | (๑¯∀¯๑)
满足
18 | (≧∀≦)ゞ
乐呵呵
19 | φ(≧ω≦*)♪
兴奋的唱歌
20 | ╰(*°▽°*)╯
惊喜
21 | (*^▽^*)
真开心
22 | o( ̄▽ ̄)d
Good!
23 | φ(゜▽゜*)♪
高兴
24 | 嗯~ o(* ̄▽ ̄*)o
嗯啊,就这么愉快的决定了
25 | (o゜▽゜)o☆[BINGO!]
BINGO,答对了
26 | (๑•̀ㅂ•́)و✧
棒棒哒
27 | ¯\_(౦▾౦ ✿)¯\_
跳舞
28 | ヾ(≧O≦)〃嗷~
嗷~嗷~
29 | ♪(^∇^*)
啦啦啦
30 | ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′
卡啦ok
31 | ╰(*°‿°*)╯
惊喜
32 | ┗|`O′|┛ 嗷~~
嗷~~
33 | (o>ε(o>u(≧∩≦)
振奋
34 | (^-^)V
欧耶
35 | !*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
欢呼“万岁”
36 | ヾ( ̄ー ̄)X(^▽^)ゞ
KO!获胜
37 | ( ^∀^)/欢迎\( ^∀^)
欢迎欢迎,热烈欢迎!
38 | ^O^
吼吼、欢呼
39 | (( へ(へ´∀`)へ
High起来!
40 | (´▽`ʃ♡ƪ)
Happy
41 | ╰( ̄▽ ̄)╭
欢呼,欢迎
42 | ︿( ̄︶ ̄)︿
飞
43 | <(* ̄▽ ̄*)/
咩哈哈
44 | (^▽^ )
微笑
45 | *´∀`)´∀`)*´∀`)*´∀`)
啊哈哈哈~~~
46 | .<{=....(嘎~嘎~嘎~)
嘎嘎,笑
47 | o(*≧▽≦)ツ
爆笑
48 | (눈▂눈)
傲娇兵长
49 | (@ ̄ー ̄@)
哼哼
50 | (◡ᴗ◡✿)
自恋
51 | <( ̄ ﹌  ̄)@m
指
52 | ( ﹁ ﹁ ) ~→
斜眼
53 | (☆-v-)
无视
54 | (´ー∀ー`)
轻蔑
55 | ┌( ´_ゝ` )┐
冷艳
56 | (‾◡◝)
骄傲
57 | ( ̄_, ̄ )
不屑
58 | (ˉ▽ ̄~) 切~~
切~~
59 | ~~( ﹁ ﹁ ) ~~~
切,不屑
60 | <( ̄ ﹌  ̄)@m 就你!
就你!
61 | (  ̄ー ̄)
不屑
62 | 눈_눈
兵长
63 | (눈益눈)
蓄力中的兵长
64 | (눈160눈)
兵长一米六
65 | (눈▽눈)
不正常的兵长
66 | (눈◇눈)
变成小鸡了的兵长
67 | (屮눈皿눈)
森气的兵长
68 | (눈~눈)
卖萌的兵长
69 | (눈0눈)
讲话的兵长
70 | (눈_눈)
兵长颜文字
71 | ( *・ω・)✄╰ひ╯
剪jj
72 | _〆(´Д` )
画圈
73 | ↑↑↓↓←→←→BA...┗( -o-)┛
无敌
74 | ˋ( ° ▽、° ) (o( ̄▽ ̄///(斩!!)
斩了
75 | (╯‵□′)╯炸弹!•••*~●
炸弹
76 | ヽ(゜▽゜ )-C<(/;◇;)/~
拖走
77 | z(-_-z)).....((s-_-)s
射拳
78 | (╬ ̄皿 ̄)=○#( ̄#)3 ̄)
拳
79 | ▄︻┻┳═一……
抢,突突
80 | (o  ̄3)==@))゜ロ゜((@==(′ε′ )o
两面夹击
81 | <(  ̄^ ̄)(θ(θ☆( >_<
踹
82 | ▄︻┻┳═一…… ☆(>○<)
爆头
83 | (ノ*・ω・)ノ
推倒
84 | ▄︻┻┳═一∵∴∷∶∵>>
散弹
85 | [噎住] ( *⊙~⊙)
噎住
86 | ( *⊙~⊙)
噎死
87 | ( *^-^)ρ(^0^* )
喂吃的
88 | 0^)吞!
吞
89 | Ψ( ̄∀ ̄)Ψ
美味
90 | ( ̄~~ ̄) 嚼!
嚼
91 | (╯▽╰ )好香~~
好香
92 | (((((ヾ( o=^•ェ•)o ┏━┓
吃饭
93 | ψ(`∇´)ψ
吃点
94 | ( ̄▽ ̄)~■干杯□~( ̄▽ ̄)
干杯
95 | (。﹏。)
低头
96 | (。﹏。*)
我错了
97 | (  ̄  ̄)σ…( _ _)ノ|壁
你去反省,面壁思过
98 | (>人<;)
人家都说对不起了
99 | (。・_・。)ノ
对不起
100 | o( ̄┰ ̄*)ゞ
不好意思啦
101 | (.. )…
那个
102 |  ̄O ̄)ノ
晚上好
103 | (ToT)/~~~
挥手帕
104 | (#`O′)
喂
105 | ヾ(´・ω・`)ノ
你好
106 | Hi~ o(* ̄▽ ̄*)ブ
Hi!
107 | ヾ(≧∇≦*)ゝ
嗨!
108 | (。・∀・)ノ゙
嗨!
109 | []~( ̄▽ ̄)~*
干杯
110 | (o゚v゚)ノ
明白
111 | o(*^▽^*)┛
举手
112 | ( ̄ー ̄)ノ~~マ☆’.・.・:★
嗯哼
113 | <( ̄ˇ ̄)/
得意
114 | <(ˉ^ˉ)>
当然啦
115 | ━━( ̄ー ̄*|||━━
淡定
116 | ʅ(´◔౪◔)ʃ
嘚瑟
117 | *★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
散花
118 | ︿( ̄︶ ̄)~
飘飘然
119 | ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)>
啦啦啦
120 | <( ̄︶ ̄)>
得意、满意
121 | ~( ̄▽ ̄~)(~ ̄▽ ̄)~
得瑟
122 | ^(* ̄(oo) ̄)^
猪
123 | U•ェ•*U
狗狗
124 | (* ̄(エ) ̄)
熊
125 | (+(工)+╬)
熊
126 | _(:驴」∠)_
躺枪驴
127 | ( ఠൠఠ )ノ
牛
128 | --(˙<>˙)/--
鸟
129 | m( =∩王∩= )m
老虎
130 | (°°)~ (°°)~ (°°)~ (°°)~
一群蝌蚪
131 | ( ̄。。 ̄)
河马
132 | (´・_・`)
发呆
133 | •﹏•
撇嘴,发呆
134 | (-@y@)
发呆,大眼睛盯住
135 | ━┳━ ━┳━
呆
136 | (☄⊙ω⊙)☄
吓
137 | ε=ε=ε=(~ ̄▽ ̄)~
跑
138 | ||o(*°▽°*)o|Ю [有人吗?]
有人吗
139 | ヽ( ̄︿ ̄ )—C<(/;◇;)/
小黑屋
140 | ━((*′д`)爻(′д`*))━!!!!
怕怕
141 | ┐(T.T ) ( T.T) ノ
没人
142 | ┌(。Д。)┐
恐怖
143 | ┏┛墓┗┓...(((m -__-)m
鬼呀
144 | o((⊙﹏⊙))o.
抖~~
145 | ||Φ|(|T|Д|T|)|Φ||
放我出去
146 | (:.;゚;益;゚;益;゚;゚;益;゚;益;゚;.)
吓死啦
147 | (*Φ皿Φ*)
吓
148 | ヽ(*。>Д<)o゜
太可怕了
149 | Σ( ° △ °|||)︴
受惊,害怕
150 | |ω・)
偷瞄,害羞
151 | |・ω・`)
躲在墙后偷瞄
152 | ◕ฺ‿◕ฺ✿ฺ)
羞
153 | つ﹏⊂
捂脸
154 | (* /ω\*)
捂脸
155 | o(*////▽////*)q
shy(害羞的、畏缩的)
156 | (*/ω\*)
脸红
157 | (′▽`〃)
害羞
158 | (✿◡‿◡)
害羞
159 | (/▽\)
不看
160 | (๑´ㅂ`๑)
乐,害羞
161 | @(。・o・)@
猴子
162 | @(o・ェ・)@
猴
163 | ヽ( o・ェ・)ノ
猴子
164 | @(/o・ェ・o)@/
猴子
165 | @(o・ェ・o)@
猴
166 | ٩(͡๏̯͡๏)۶
猴子
167 | 『家』 ~o(▽` o) =3 =3 =3
回家
168 | (~o ̄▽ ̄)~o ~。。。
我来了
169 | ~(~ ̄▽ ̄)~
我来了
170 | ||ヽ(* ̄▽ ̄*)ノミ|Ю
我回来啦
171 | ヾ(^▽^*)))
我回来了,高兴
172 | ┏ (^ω^)=☞
就是他,幸灾乐祸
173 | →_←
斗鸡眼,挤眉弄眼
174 | ◑▂◐
斗鸡眼
175 | ( ‵▽′)ψ
邪恶
176 | ԅ(¯﹃¯ԅ)
使坏
177 | ᕕ( ᐛ )ᕗ
赖
178 | (〃` 3′〃)
撅嘴
179 | (→ܫ←)
鬼脸
180 | ( >ρ < ”)
吐口水
181 | ┬┴┤_•)
偷窥
182 | ’(°ー°〃)
愣住
183 | (ーー゛)
我勒个去
184 | (○´・д・)ノ
震惊
185 | wow~ ⊙o⊙
wow~ (哇!呀!)
186 | ~( ̄0 ̄)/
神啊
187 | Σ(`д′*ノ)ノ
惊
188 | Σ(っ °Д °;)っ
惊讶
189 | (⊙ˍ⊙)
惊
190 | w(゚Д゚)w
啊啊
191 | m(o・ω・o)m
哦?
192 | (^U^)ノ~YO
哟!
193 | ♪(´∇`*)
天啊
194 | ⊙▽⊙
惊讶
195 | ━━∑( ̄□ ̄*|||━━
石化
196 | |(*′口`)
汗死
197 | ……]((o_ _)'彡☆
跌倒
198 | (* ̄rǒ ̄)
挖鼻屎
199 | ○| ̄|_ =3
放屁
200 | (°ー°〃)
愣住
201 | ( ̄△ ̄;)
呆滞
202 | テ_デ
泪流满面
203 | □_□
快哭了
204 | ┭┮﹏┭┮
呜呜呜
205 | ╥﹏╥...
委屈
206 | o(TヘTo)
TAT
207 | 〒▽〒
内牛满面
208 | ε(┬┬﹏┬┬)3
苦命的娃
209 | (;´༎ຶД༎ຶ`)
哭死
210 | (ノへ`、)
擦眼泪
211 | ( ̄ ‘i  ̄;)
鼻涕虫
212 | (-_-。)
呜呜呜~
213 | (ノへ ̄、)
擦眼泪
214 | ( -'`-)
困恼
215 | (=′ー`)
这样么
216 | ( -'`-; )
困恼
217 | (・-・*)
大概。。。
218 | ┌|*´∀`|┘
愁呀
219 | (σ`д′)σ
是不是你
220 | ( `д′)
什么东西
221 | ⊙▾⊙
是这样吗?
222 | ( ̄m ̄)
是么?
223 | ( ╯▽╰)
皱眉,欣慰
224 | (๑→ܫ←)
卖萌的猫
225 | (=^x^=)
萌猫
226 | o( =•ω•= )m
喵星人
227 | ≡ω≡
喵呜
228 | ~o( =∩ω∩= )m
猫喵
229 | o(=•ェ•=)m
猫
230 | (╯ε╰)
么么
231 | (っ´Ι`)っ
亲亲你
232 | o(* ̄3 ̄)o
亲亲
233 | (づ ̄3 ̄)づ╭❤~
Mua,么么
234 | (*╯3╰)
MUA(“么”,亲一下的意思)
235 | !(* ̄( ̄ *)
kiss
236 | (* ̄3 ̄)╭
飞吻
237 | (*  ̄3)(ε ̄ *)
啵啵
238 | (○` 3′○)
么么
239 | ( * ̄▽ ̄)((≧︶≦*)
蹭一下
240 | ヘ(・_|
我在这里,快来找
241 | (๐॔˃̶ᗜ˂̶๐॓)
蠢哭
242 | (o≖◡≖)
臭美
243 | (;′⌒`)
哼哼
244 |  ̄へ ̄
不开心
245 | (*゜ー゜*)
才知道啊
246 | (~o ̄3 ̄)~
漂
247 | = ̄ω ̄=
卖萌
248 | (*^-^*)
好可爱啊
249 | (~o ̄▽ ̄)~o 。。。
滚来滚去
250 | o(*^@^*)o
乖
251 | ヾ(´∀`o)+
笨人
252 | (っ*´Д`)っ
笨蛋
253 | (~ ̄(OO) ̄)ブ
笨
254 | (>▽<)
嗷~~
255 | (*゚ー゚)
嘴角
256 | *(੭*ˊᵕˋ)੭*ଘ
自拍,美美哒
257 | ( ͡° ͜ʖ ͡°)
矜持
258 | |_・)
缩在一角
259 | X﹏X
糟糕了
260 | _( ゚Д゚)ノ
举手
261 | (/0 ̄)o [呼唤]
呼唤
262 | φ(-ω-*)
去你的
263 | (゚Д゚*)ノ
我反对
264 | ( 。_ 。) ✎ _
书写
265 | ( ´_ゝ`)✎
写字
266 | ✎~~~✐
写写写
267 | 谢啦!!☆⌒(*^-゜)v
谢谢啦
268 | ☆⌒(*^-゜)v THX!!
THX(THANKS缩写,谢谢)
269 | (◆゜∀゜)b
恭喜
270 | (ง •_•)ง
加油
271 | (❤´艸`❤)
花痴
272 | ○( ^皿^)っHiahiahia…
HIA HIA~~~~(表示很猥琐的笑)
273 | ┗|*`0′*|┛
肌肉
274 | ヽ( ̄ω ̄( ̄ω ̄〃)ゝ
义气
275 | $_$
贪心,见钱眼开
276 | (O_o)(o_O)
大眼瞪小眼
277 | →_→
往右瞄
278 | ←_←
往左瞄
279 | (  ̄ー ̄)
冷笑
280 | (ρ_・).。
累
281 | (-∀=)
无言
282 | 分>( ̄▽ ̄ =  ̄︿ ̄)<裂
分裂
283 | _____λ......___丬 别走啊~~
别走
284 | ~( TロT)σ
坏人
285 | \(゜ロ\)(/ロ゜)/
讨厌
286 | <(-︿-)>
生气
287 | (ー`´ー)
皱眉
288 | (`へ´)
生气,哼
289 | (-__-)=@))> o<)
去死
290 | ε=怒ε=怒ε=怒ε=( o`ω′)ノ
大怒
291 | <( ‵□′)>───Cε(┬﹏┬)3
捏耳朵
292 | (/// ̄皿 ̄)○~
哪里跑
293 | (=。=)
可恶
294 | ┻━┻︵╰(‵□′)╯︵┻━┻
双手掀翻桌子
295 | →)╥﹏╥)
抽脸
296 | 抽!!( ̄ε(# ̄)☆╰╮( ̄▽ ̄///)
抽你
297 | ( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)
扇耳光
298 | <)。(>
叉腰
299 | (*  ̄︿ ̄)
不爽
300 | (* ̄︿ ̄)
不满
301 | (# ̄~ ̄#)
不满
302 | (⊙x⊙;)
闭嘴
303 | (ノω<。)ノ))☆.。
讨厌啦
304 | o(*≧▽≦)ツ┏━┓
掀桌,发飙
305 | ´・∀・)乂(・∀・`
死吧
306 | ( σ'ω')σ
告状
307 | o(′益`)o
纠结
308 | (〃>目<)
可恶
309 | o(≧口≦)o
崩溃
310 | O(≧口≦)O
啊啊啊
311 | ...(* ̄0 ̄)ノ[等等我…]
等等我~
312 | (≧0≦)
呀~~~抓狂
313 | (つω`)~
眠
314 | (o-ωq)).oO 困
困啊
315 | (p.-)(p.-)(p.-)
困死了
316 | ( ̄o ̄) . z Z
困了
317 | (_ _)( - . - )(~O~) ……( - . - )
打哈欠
318 | (+.+)(-.-)(_ _) ..zzZZ もうだめ
不行了,困死了
319 | ╯_╰
无精打采
320 | ZZzz…(。-ω-)..ooO(•:*:~:*:•)
做梦
321 | ※=○☆(__*)Zzz
起床
322 | ☆{{{Д}}} ☆!! [铃铃铃]
闹钟
323 | ZZzz…(。-ω-)..ooO((【•:*:~夢~:*:•】))
做梦
324 | ZZzz…(。-ω-)
睡着,呼噜声
325 | |−・;)
躲着
326 | ^_~
俏皮地眨眼睛
327 | o( ̄ヘ ̄o#)
哼,不理你
328 | (/ω\*)……… (/ω•\*)
偷瞄,偷看
329 | <( ‵□′)───C<─___-)||
捏脸
330 | ο(=•ω<=)ρ⌒☆
媚眼
331 | ( ̄┰ ̄*)
鬼脸
332 | (o゜▽゜)o☆
有了
333 | o( ̄ε ̄*)
嘟嘴,亲亲
334 | \(^▽^)/
太好了&要抱抱
335 | ε=ε=ε=┏(゜ロ゜;)┛
逃,跑步
336 | …(⊙_⊙;)…
逃
337 | …〒_〒…‵o′-一┳═┻︻▄
自杀
338 | ┗( T﹏T )┛
我错了,我投降
339 | //(っ °Д °;)っ
倒
340 | ~(□`)~
逃跑
341 | ヽ(≧□≦)ノ
不要啊
342 | (。・・)ノ
弱
343 | ε = = (づ′▽`)づ
跑
344 | ヽ(゚∀゚*)ノ━━━ゥ♪
逃之夭夭
345 | ””( ̄ー ̄)/””
没了
346 | ㄟ( ▔, ▔ )ㄏ
不是我
347 | (。_。)
受打击,委屈
348 | (o´・ェ・`o)
无辜
349 | 不>( ̄ε ̄ =  ̄3 ̄)<要
不要啊
350 | (┬_┬)↘
跌倒
351 | ...( _ _)ノ|壁
扶墙,痛苦
352 | 凸(艹皿艹 )
擦
353 | [喝西北风]( ′Д`)彡
喝西北方
354 | ( ′ 3`) sigh~
sigh(叹气)
355 | ○| ̄|_
orz(五体投地)
356 | ((*・∀・)ゞ→→
这
357 | ╮(╯▽╰)╭
无奈
358 | ┑( ̄Д  ̄)┍
摊手
359 | .....~~((/- -)/
飘过
360 | ╮(╯_╰)╭
没办法了
361 | -________-''
呃呃呃
362 | (⊙﹏⊙)
呃呃呃
363 | (o_ _)ノ
败了
364 |  ̄△ ̄
那个(不好意思)
365 | <゜)))彡
鱼
366 | ζ°)))彡
小金鱼
367 | くコ:彡
鱼
368 | (:◎)≡
鱿鱼
369 | >°))))彡
金鱼
370 | <+ ))><<
鱼
371 | <*)) >>=<
鱼
372 | (°)#))<<
小鱼
373 | <・ )))><<
鱼
374 | (lll¬ω¬)
汗死
375 | o(一︿一+)o
怨念
376 | (((φ(◎ロ◎;)φ)))
晕晕晕
377 | ~%?…,# *'☆&℃$︿★?
乱码,什么跟什么?
378 | (☆´益`)c
扶额
379 | ◐▽◑
不知道
380 | (@_@;)
晕了,不懂
381 | ┏(^0^)┛
再见
382 | (。・_・)/~~~
再见啦
383 | (* ̄▽ ̄)( ̄▽:;.…::;.:.:::;..::;.:...
闪人
384 | (^∀^●)ノシ
明天见
385 | \(^∀^)メ(^∀^)ノ
回见
386 | ( ´・・)ノ(._.`)
分手
387 | ₍₍ ◝( ゚∀ ゚ )◟⁾⁾不送
不送
388 | (ㄏ ̄▽ ̄)ㄏbyeㄟ( ̄▽ ̄ㄟ)
拜拜
389 | ヾ( ̄▽ ̄)Bye~Bye~
Bye~拜
390 | =└(┐卍^o^)卍
闪
391 | ( ゚д゚)つBye
走啦
392 | (* ̄;( ̄ *)
吻别
393 | ✧(≖ ◡ ≖✿)
闪人
394 | <( ̄︶ ̄)↗[GO!]
GO!
395 | (。^▽^)
厉害
396 | ヾ(●゜ⅴ゜)ノ
就是
397 | (* ̄▽)u┌┐ d(▽ ̄*)
高,厉害
398 | <(^-^)>
对
399 | d=====( ̄▽ ̄*)b
顶
400 | ヾ(@⌒ー⌒@)ノ
是啊是啊
401 | (((o(*゚▽゚*)o)))
赞
402 | ( *︾▽︾)
陶醉
--------------------------------------------------------------------------------
/data/sougou_dict_data.txt:
--------------------------------------------------------------------------------
1 | w(゚Д゚)w
输入文字:啊啊
2 | (ノへ ̄、)
输入文字:擦眼泪
3 | ( ̄_, ̄ )
输入文字:不屑
4 | ヽ(✿゚▽゚)ノ
输入文字:好耶
5 | (๑•̀ㅂ•́)و✧
输入文字:棒
6 | ( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)
输入文字:抽
7 | (づ ̄3 ̄)づ╭❤~
输入文字:亲
8 | Σ( ° △ °|||)︴
输入文字:汗
9 | (~ ̄(OO) ̄)ブ
输入文字:笨
10 | 凸(艹皿艹 )
输入文字:擦
11 | (*  ̄3)(ε ̄ *)
输入文字:啵啵
12 | (* ̄rǒ ̄)
输入文字:挖鼻屎
13 | ┗|`O′|┛ 嗷~~
输入文字:嗷
14 | φ(≧ω≦*)♪
输入文字:乐
15 | ︿( ̄︶ ̄)︿
输入文字:飞
16 | (u‿ฺu✿ฺ)
输入文字:好滴
17 | Hi~ o(* ̄▽ ̄*)ブ
输入文字:hi
18 | ♪(^∇^*)
输入文字:啦啦
19 | o(*≧▽≦)ツ┏━┓
输入文字:拍桌
20 | ╰(*°▽°*)╯
输入文字:惊喜
21 | (○` 3′○)
输入文字:嘟嘴
22 | o(*^@^*)o
输入文字:乖
23 | (#`O′)
输入文字:喂
24 | (°ー°〃)
输入文字:愣住
25 | ○| ̄|_ =3
输入文字:放屁
26 | o( ̄ヘ ̄o#)
输入文字:哼哼
27 | (=。=)
输入文字:可恶
28 | ~~( ﹁ ﹁ ) ~~~
输入文字:切
29 | (ーー゛)
输入文字:去
30 | (ー`´ー)
输入文字:生气
31 | (#`O′)
输入文字:喂
32 | o(一︿一+)o
输入文字:怨念
33 | o(≧口≦)o
输入文字:崩溃
34 | ㄟ( ▔, ▔ )ㄏ
输入文字:不是我
35 | (o_ _)ノ
输入文字:败了
36 | (⊙﹏⊙)
输入文字:呃呃呃
37 | (ˉ▽ ̄~) 切~~
输入文字:切
38 | (* ̄(エ) ̄)
输入文字:无言
39 | ┑( ̄Д  ̄)┍
输入文字:摊手
40 | (@_@;)
输入文字:不懂
41 | ━┳━ ━┳━
输入文字:呆
42 | (☆´益`)c
输入文字:扶额
43 | (´Д`)
输入文字:囧
44 | ┗( T﹏T )┛
输入文字:投降
45 | (。﹏。*)
输入文字:我错了
46 | o( =•ω•= )m
输入文字:喵星人
47 | ≡ω≡
输入文字:喵呜
48 | (* ̄(エ) ̄)
输入文字:熊
49 | (✿◡‿◡)
输入文字:害羞
50 | (*/ω\*)
输入文字:脸红
51 | ┭┮﹏┭┮
输入文字:呜呜呜
52 | ヾ( ̄▽ ̄)Bye~Bye~
输入文字:拜
53 | ( ﹁ ﹁ ) ~→
输入文字:斜眼
54 | Ψ( ̄∀ ̄)Ψ
输入文字:美味
55 | ✧(≖ ◡ ≖✿)
输入文字:闪
56 | ━━( ̄ー ̄*|||━━
输入文字:淡定
57 | ヽ(*。>Д<)o゜
输入文字:太可怕了
58 | ┌(。Д。)┐
输入文字:恐怖
59 | ○| ̄|_
输入文字:orz
60 | o( ̄▽ ̄)d
输入文字:good
61 | (;′⌒`)
输入文字:伤心
62 | X﹏X
输入文字:糟糕
63 | *<|:-)
输入文字:圣诞
64 | ~( ̄▽ ̄)~*
输入文字:哈
65 | ( = 6 ω 6 = )
输入文字:六六
66 | (๑❛ᴗ❛๑)
输入文字:可爱
67 | (*°▽°*)八(*°▽°*)♪
输入文字:击掌
68 | ✿ヽ(°▽°)ノ✿
输入文字:撒花
69 | (︶.̮︶✽)
输入文字:安静
70 | Σ>―(〃°ω°〃)♡→
输入文字:穿心
71 | (,, Ծ ‸ Ծ,, )
输入文字:皱眉
72 | (ΦωΦ)
输入文字:猫眼
73 | (´;ω;`)
输入文字:哭
74 | (๑◔‿◔๑)
输入文字:盯
75 | ~o(〃'▽'〃)o
输入文字:哈
76 | ₍•͈˽•͈₎
输入文字:安静
77 | ₍•˽•₎
输入文字:安静
78 | (´-ω-`)
输入文字:嘤嘤
79 | (´・Д・)」
输入文字:唉
80 | ╭( ・ㅂ・)و ̑̑
输入文字:加油
81 | (๑•́ ₃ •̀๑)
输入文字:可爱
82 | ˃̣̣̥᷄⌓˂̣̣̥᷅
输入文字:哭
83 | (•̀⌄•́)
输入文字:盯
84 | ヾ(´∀`o)+
输入文字:哈
85 | (。・ω・。)ノ
输入文字:你好
86 | ლ—(°◡°)-ლ
输入文字:喵
87 | (`Δ´)!
输入文字:喂
88 | ₍ ᐢ. ̫ .ᐢ ₎
输入文字:喵
89 | づ♡ど
输入文字:好人卡
90 | (〃'▽'〃)
输入文字:哈哈
91 | (〃∀〃)
输入文字:害羞
92 | ゚(つд`゚)
输入文字:捂脸
93 | (`・ω・)
输入文字:盯
94 | (つ ᰩ ᭄ ⊂)
输入文字:干杯
95 | ( ˇωˇ )◕∀◕。)^ω^)
输入文字:贴贴
96 | (*゚∇゚)
输入文字:哇
97 | (´゚Д゚`)
输入文字:惊讶
98 | |д` )
输入文字:偷看
99 | ( ゚ω゚)
输入文字:可爱
100 | ( ´ー`)
输入文字:无语
101 | (|||ˇヮˇ)
输入文字:流汗
102 | ( ;`д´; )
输入文字:哭
103 | ( ´д`)
输入文字:皱眉
104 | | ω・´)
输入文字:暗中观察
105 | (|||゚д゚)
输入文字:惊呆了
106 | ヾ(´ε`ヾ)
输入文字:要抱抱
107 | ( `_っ´)
输入文字:长鼻子
108 | ( ̄3 ̄)
输入文字:嘟嘴
109 | ( ゚∀。)
输入文字:歪头杀
110 | (`・ω)
输入文字:侧脸杀
111 | ゚Å゚ )
输入文字:恐怖
112 | ⊂彡☆))д´)
输入文字:扇耳光
113 | (`・ω・´)
输入文字:盯
114 | ( `д´) 预备备!笑!
输入文字:预备
115 | |∀` )
输入文字:偷看
116 | ((( ゚д゚)))
输入文字:惊讶
117 | (*´∀`)
输入文字:是啊
118 | ( ›´ω`‹ )
输入文字:我错了
119 | (・ー・)
输入文字:嗯
120 | |-` )
输入文字:偷看
121 | (ノ)`ω´(ヾ)
输入文字:肥肥
122 | ⁽ ^ᐜ^⁾
输入文字:眯眼笑
123 | (ノ#)`д´)σ
输入文字:指你
124 | (^o^)ノ
输入文字:你好
125 | ( ̄︶ ̄)
输入文字:微笑
126 | ( ノд`゚)
输入文字:捂脸
127 | m9( `д´)
输入文字:宰了你
128 | ᐕ)⁾⁾
输入文字:探头
129 | (。◕∀◕。)
输入文字:哇
130 | (;´ヮ`)7
输入文字:没有吧
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 | c( ╹^╹)
输入文字:哼
172 | (=゚ω゚)=
输入文字:卖萌
173 | ₍₍(ง`ᝫ´ )ว⁾
输入文字:跑路
174 | (`ヮ´ )σ`∀´) ゚∀゚)σ
输入文字:多人
175 | (*゚ー゚)
输入文字:脸红
176 | (・ω・)
输入文字:盯
177 | |д゚ )
输入文字:偷看
178 | ( ̄皿 ̄)
输入文字:生气
179 | 接☆龙☆大☆成☆功
输入文字:接龙
180 | (*´д`)
输入文字:脸红
181 | ( ゚∀゚)
输入文字:诶
182 | ( ;´д`)
输入文字:哭
183 | ゚( ☉д⊙)
输入文字:啊
184 | ( ̄ .  ̄)
输入文字:嗯
185 | (*゚∀゚*)
输入文字:嘿嘿
186 | (o゚ω゚o)
输入文字:可爱维斯
187 | ( ´∀`)
输入文字:诶
188 | ↙(`ヮ´ )↗ 开摆!
输入文字:开摆
189 | ₍˄·͈༝·͈˄₎◞
输入文字:喵
190 | |∀゚
输入文字:偷看
191 | ( ゚ᯅ 。)
输入文字:旋转
192 | `ー´) `д´) `д´)
输入文字:多人
193 | (つд⊂)
输入文字:捂脸
194 | σ σ
输入文字:眼睛
195 | U•ェ•*U
输入文字:熊
196 | (`ゥ´ )
输入文字:娃哈哈
197 | ᕕ( ゚∀。)ᕗ
输入文字:诶嘿
198 | ( TдT)
输入文字:tat
199 | ( `ᵂ´)
输入文字:骄傲
200 | ( -д-)
输入文字:呃
201 | ⁽ ˆ꒳ˆ⁾
输入文字:眯眼笑
202 | ( ・_ゝ・)
输入文字:嗯
203 | ᕕ( ᐛ )ᕗ
输入文字:诶嘿
--------------------------------------------------------------------------------
/generate_dict.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | """
3 | Rime颜文字词库生成工具
4 |
5 | 主要功能:
6 | 1. 从多种数据源生成颜文字词库
7 | 2. 支持生成全拼和双拼词库
8 | 3. 解决OpenCC空格问题和emoji撞车问题
9 | 4. 支持多种双拼方案
10 | 5. 自动去重排序功能,确保词库质量
11 |
12 | 使用方法:
13 | python generate_dict.py [options]
14 |
15 | 选项:
16 | --output-dir DIR 指定输出目录
17 | --all 生成所有类型的词库(全拼词库、kmj词库和所有双拼方案词库)
18 | --pinyin 生成拼音版词库
19 | --kmj 生成kmj版词库
20 | --shuangpin 生成双拼版词库
21 | --scheme {xiaohe,ziranma,sogou,microsoft,znabc}
22 | 指定双拼方案
23 | --no-special-space 不使用特殊空格替换普通空格
24 | --no-dedup 不对生成的词库进行去重
25 | --help 显示帮助信息
26 | """
27 |
28 | import os
29 | import re
30 | import argparse
31 | import datetime
32 | from typing import List, Tuple, Dict
33 | from pypinyin import NORMAL
34 | from pyshuangpin import Scheme, shuangpin_by_syllabl
35 |
36 | from kaomoji_processor import KaomojiProcessor
37 |
38 |
39 | def parse_arguments():
40 | """解析命令行参数"""
41 | parser = argparse.ArgumentParser(description='Rime颜文字词库生成工具')
42 | parser.add_argument('--output-dir', type=str, default='output',
43 | help='指定输出目录 (默认: output)')
44 | parser.add_argument('--all', action='store_true',
45 | help='生成所有类型的词库(全拼词库、kmj词库和所有双拼方案词库)')
46 | parser.add_argument('--pinyin', action='store_true',
47 | help='生成拼音版词库')
48 | parser.add_argument('--kmj', action='store_true',
49 | help='生成kmj版词库')
50 | parser.add_argument('--shuangpin', action='store_true',
51 | help='生成双拼版词库')
52 | parser.add_argument('--scheme', type=str, choices=['xiaohe', 'ziranma', 'sogou', 'microsoft', 'znabc'],
53 | default='xiaohe', help='指定双拼方案 (默认: xiaohe)')
54 | parser.add_argument('--no-special-space', action='store_true',
55 | help='不使用特殊空格替换普通空格')
56 | parser.add_argument('--no-dedup', action='store_true',
57 | help='不对生成的词库进行去重')
58 | return parser.parse_args()
59 |
60 |
61 | def select_scheme(scheme_name: str) -> Scheme:
62 | """
63 | 根据方案名称选择对应的双拼方案
64 |
65 | Args:
66 | scheme_name: 方案名称
67 |
68 | Returns:
69 | 对应的Scheme枚举值
70 | """
71 | scheme_map = {
72 | 'xiaohe': Scheme.小鹤,
73 | 'ziranma': Scheme.自然码,
74 | 'sogou': Scheme.搜狗,
75 | 'microsoft': Scheme.微软,
76 | 'znabc': Scheme.智能ABC
77 | }
78 |
79 | return scheme_map.get(scheme_name.lower(), Scheme.小鹤)
80 |
81 |
82 | def get_all_schemes() -> Dict[str, Scheme]:
83 | """
84 | 获取所有支持的双拼方案
85 |
86 | Returns:
87 | 方案名称到Scheme枚举值的映射
88 | """
89 | return {
90 | 'xiaohe': Scheme.小鹤,
91 | 'ziranma': Scheme.自然码,
92 | 'sogou': Scheme.搜狗,
93 | 'microsoft': Scheme.微软,
94 | 'znabc': Scheme.智能ABC
95 | }
96 |
97 |
98 | def get_pinyin_key(item: str) -> str:
99 | """
100 | 获取拼音键用于排序
101 |
102 | Args:
103 | item: 包含拼音的行
104 |
105 | Returns:
106 | 拼音键(小写)
107 | """
108 | parts = item.split("\t")
109 | if len(parts) > 1:
110 | chinese_pinyin = parts[1]
111 | return chinese_pinyin.lower() # 转换为小写进行来忽略大小写
112 | return ""
113 |
114 |
115 | def dedup_and_sort(lines: List[str], sort_key_func=None) -> List[str]:
116 | """
117 | 去除重复行并排序
118 |
119 | Args:
120 | lines: 需要去重排序的行列表
121 | sort_key_func: 排序键函数,默认使用get_pinyin_key
122 |
123 | Returns:
124 | 去重排序后的行列表
125 | """
126 | # 去除重复的行
127 | unique_lines = list(set(lines))
128 |
129 | # 排序
130 | if sort_key_func:
131 | sorted_lines = sorted(unique_lines, key=sort_key_func)
132 | else:
133 | sorted_lines = sorted(unique_lines, key=get_pinyin_key)
134 |
135 | return sorted_lines
136 |
137 |
138 | def generate_pinyin_dictionary(processor: KaomojiProcessor,
139 | input_files: List[str],
140 | output_file: str,
141 | use_special_space: bool = True,
142 | use_dedup: bool = True) -> List[str]:
143 | """
144 | 生成拼音版词库
145 |
146 | Args:
147 | processor: 颜文字处理器
148 | input_files: 输入文件列表
149 | output_file: 输出文件路径
150 | use_special_space: 是否使用特殊空格
151 | use_dedup: 是否进行去重排序
152 |
153 | Returns:
154 | 处理结果列表
155 | """
156 | all_output_result = []
157 |
158 | print("正在生成拼音版词库...")
159 | for input_filename in input_files:
160 | if not os.path.exists(input_filename):
161 | print(f"警告: 文件 {input_filename} 不存在,已跳过")
162 | continue
163 |
164 | # A_kaomoji文件不支持拼音转换,直接跳过
165 | if 'A_kaomoji' in input_filename:
166 | continue
167 |
168 | pinyin_results, _ = processor.process_file(
169 | input_filename=input_filename,
170 | is_pinyin=True,
171 | save_file=False,
172 | use_special_space=use_special_space
173 | )
174 | all_output_result.extend(pinyin_results)
175 |
176 | # 使用去重排序函数处理结果
177 | if use_dedup:
178 | all_output_result = dedup_and_sort(all_output_result)
179 |
180 | # 确保输出目录存在
181 | os.makedirs(os.path.dirname(output_file), exist_ok=True)
182 |
183 | # 保存结果
184 | with open(output_file, 'w', encoding='utf-8') as output_file_obj:
185 | output_file_obj.writelines(all_output_result)
186 |
187 | print(f"拼音版词库已生成,共 {len(all_output_result)} 个颜文字")
188 | return all_output_result
189 |
190 |
191 | def generate_kmj_dictionary(processor: KaomojiProcessor,
192 | input_files: List[str],
193 | output_file: str,
194 | use_special_space: bool = True,
195 | use_dedup: bool = True) -> List[str]:
196 | """
197 | 生成kmj版词库
198 |
199 | Args:
200 | processor: 颜文字处理器
201 | input_files: 输入文件列表
202 | output_file: 输出文件路径
203 | use_special_space: 是否使用特殊空格
204 | use_dedup: 是否进行去重排序
205 |
206 | Returns:
207 | 处理结果列表
208 | """
209 | all_output_result = []
210 |
211 | print("正在生成kmj版词库...")
212 | for input_filename in input_files:
213 | if not os.path.exists(input_filename):
214 | print(f"警告: 文件 {input_filename} 不存在,已跳过")
215 | continue
216 |
217 | _, kmj_results = processor.process_file(
218 | input_filename=input_filename,
219 | is_pinyin=False,
220 | save_file=False,
221 | use_special_space=use_special_space
222 | )
223 | all_output_result.extend(kmj_results)
224 |
225 | # 使用去重排序函数处理结果
226 | if use_dedup:
227 | all_output_result = dedup_and_sort(all_output_result)
228 |
229 | # 确保输出目录存在
230 | os.makedirs(os.path.dirname(output_file), exist_ok=True)
231 |
232 | # 保存结果
233 | with open(output_file, 'w', encoding='utf-8') as output_file_obj:
234 | output_file_obj.writelines(all_output_result)
235 |
236 | print(f"kmj版词库已生成,共 {len(all_output_result)} 个颜文字")
237 | return all_output_result
238 |
239 |
240 | def generate_shuangpin_dictionary(pinyin_dict_file: str,
241 | output_file: str,
242 | scheme: Scheme,
243 | include_details: bool = False,
244 | use_dedup: bool = True,
245 | use_special_space: bool = True) -> Tuple[List[str], List[str]]:
246 | """
247 | 生成双拼版词库
248 |
249 | Args:
250 | pinyin_dict_file: 拼音词库文件路径
251 | output_file: 输出文件路径
252 | scheme: 双拼方案
253 | include_details: 是否包含详细信息(全拼和汉字)
254 | use_dedup: 是否进行去重排序
255 | use_special_space: 是否使用特殊空格(U+2002)
256 |
257 | Returns:
258 | 处理结果元组 (成功列表, 失败列表)
259 | """
260 | from Pinyin2Hanzi import simplify_pinyin, is_pinyin
261 | import pychaifen
262 |
263 | if not os.path.exists(pinyin_dict_file):
264 | print(f"错误: 拼音词库文件 {pinyin_dict_file} 不存在")
265 | return [], []
266 |
267 | print(f"正在生成双拼版词库 (方案: {scheme.name})...")
268 |
269 | # 读取拼音词库
270 | with open(pinyin_dict_file, 'r', encoding='utf-8') as file:
271 | lines = file.readlines()
272 |
273 | pattern = r'^(.*?)\t(.*)\t(.*)$'
274 | output_result_shuangpin = []
275 | output_result_shuangpin_bad = [] # 仅用于记录完全无法处理的条目
276 |
277 | # 处理每一行
278 | for line in lines:
279 | match = re.search(pattern, line)
280 | if match:
281 | quanpin_text = match.group(2) # 提取拼音
282 | emoticon = match.group(1).strip() # 提取颜文字
283 |
284 | # 处理任何类型的空格,包括普通空格和特殊空格
285 | space_char = '\u2002' if use_special_space else ' '
286 |
287 | # 检测并替换特殊空格为临时标记,以便后续处理
288 | has_special_spaces = '\u2002' in quanpin_text
289 | if has_special_spaces:
290 | # 临时替换特殊空格为普通空格进行处理
291 | temp_quanpin_text = quanpin_text.replace('\u2002', ' ')
292 | else:
293 | temp_quanpin_text = quanpin_text
294 |
295 | # 处理带空格的拼音情况
296 | if ' ' in temp_quanpin_text or has_special_spaces:
297 | # 按空格分割拼音字符串
298 | quanpin_parts = temp_quanpin_text.split(' ')
299 | shuangpin_parts = []
300 |
301 | # 逐个处理每部分拼音
302 | for part in quanpin_parts:
303 | if not part: # 跳过空字符串
304 | continue
305 |
306 | syllablelist = pychaifen.quanp2shuangp(part)
307 |
308 | # 检查编码是否为纯拼音编码
309 | is_pinyin_syllablelist = True
310 | for i in range(len(syllablelist)):
311 | syllable = syllablelist[i]
312 | if not is_pinyin(syllable):
313 | syllable_mod = simplify_pinyin(syllable)
314 | if not is_pinyin(syllable_mod):
315 | is_pinyin_syllablelist = False
316 | continue
317 | else:
318 | if syllable_mod != syllable:
319 | syllablelist[i] = syllable_mod
320 |
321 | if is_pinyin_syllablelist:
322 | # 使用pyshuangpin库将全拼转换为双拼
323 | shuangpin_text = shuangpin_by_syllabl(syllablelist, scheme, style=NORMAL)
324 | shuangpin_str = ''.join([item[0] for item in shuangpin_text])
325 | shuangpin_parts.append(shuangpin_str)
326 | else:
327 | # 对于无效的拼音部分,保留原始文本
328 | shuangpin_parts.append(part)
329 |
330 | # 用适当的空格类型重新连接各部分双拼结果
331 | final_shuangpin_str = space_char.join(shuangpin_parts)
332 |
333 | # 格式化输出行
334 | if include_details:
335 | output_line = f"{emoticon}\t{final_shuangpin_str}\t1\t{quanpin_text}\n"
336 | else:
337 | output_line = f"{emoticon}\t{final_shuangpin_str}\t1\n"
338 |
339 | output_result_shuangpin.append(output_line)
340 | else:
341 | # 无空格情况
342 | syllablelist = pychaifen.quanp2shuangp(quanpin_text)
343 |
344 | # 检查编码是否为纯拼音编码
345 | is_pinyin_syllablelist = True
346 | for i in range(len(syllablelist)):
347 | syllable = syllablelist[i]
348 | if not is_pinyin(syllable):
349 | syllable_mod = simplify_pinyin(syllable)
350 | if not is_pinyin(syllable_mod):
351 | is_pinyin_syllablelist = False
352 | continue
353 | else:
354 | if syllable_mod != syllable:
355 | syllablelist[i] = syllable_mod
356 |
357 | if is_pinyin_syllablelist:
358 | # 使用pyshuangpin库将全拼转换为双拼
359 | shuangpin_text = shuangpin_by_syllabl(syllablelist, scheme, style=NORMAL)
360 | shuangpin_str = ''.join([item[0] for item in shuangpin_text])
361 |
362 | # 格式化输出行
363 | if include_details:
364 | hanzi_text = pychaifen.py2hz(syllablelist)
365 | output_line = f"{emoticon}\t{shuangpin_str}\t1\t{quanpin_text}\t{hanzi_text}\n"
366 | else:
367 | output_line = f"{emoticon}\t{shuangpin_str}\t1\n"
368 |
369 | output_result_shuangpin.append(output_line)
370 | else:
371 | # 对于单字母或中文缩写等,直接使用原始文本作为双拼结果
372 | output_line = f"{emoticon}\t{quanpin_text}\t1\n"
373 | output_result_shuangpin.append(output_line)
374 | else:
375 | # 不符合格式的行添加到bad结果
376 | output_result_shuangpin_bad.append(line)
377 |
378 | # 如果启用去重,对结果进行去重排序
379 | if use_dedup:
380 | output_result_shuangpin = dedup_and_sort(output_result_shuangpin)
381 | output_result_shuangpin_bad = dedup_and_sort(output_result_shuangpin_bad)
382 |
383 | # 确保输出目录存在
384 | os.makedirs(os.path.dirname(output_file), exist_ok=True)
385 |
386 | # 保存结果
387 | with open(output_file, 'w', encoding='utf-8') as output_file_obj:
388 | output_file_obj.writelines(output_result_shuangpin)
389 |
390 | # 保存格式不符的结果
391 | if output_result_shuangpin_bad:
392 | bad_output_file = output_file.replace('.txt', '_format_error.txt')
393 | with open(bad_output_file, 'w', encoding='utf-8') as output_file_obj:
394 | output_file_obj.writelines(output_result_shuangpin_bad)
395 | print(f"格式可能错误条目已保存到: {bad_output_file}")
396 |
397 | print(f"双拼版词库已生成,共 {len(output_result_shuangpin)} 个有效条目,{len(output_result_shuangpin_bad)} 个格式可能错误条目")
398 | return output_result_shuangpin, output_result_shuangpin_bad
399 |
400 |
401 | def generate_rime_dict_file(input_file: str, output_file: str, dict_name: str, dict_type: str):
402 | """
403 | 生成Rime词库文件(.dict.yaml)
404 |
405 | Args:
406 | input_file: 输入文件路径
407 | output_file: 输出文件路径
408 | dict_name: 词库名称
409 | dict_type: 词库类型
410 | """
411 | if not os.path.exists(input_file):
412 | print(f"错误: 输入文件 {input_file} 不存在")
413 | return
414 |
415 | # 读取词条
416 | with open(input_file, 'r', encoding='utf-8') as file:
417 | content = file.read()
418 |
419 | # 统计词条数量
420 | entry_count = content.count('\n')
421 |
422 | # 获取当前日期,格式为YYYY-MM-DD
423 | current_date = datetime.datetime.now().strftime("%Y-%m-%d")
424 |
425 | # 生成词库头部
426 | header = f"""# Rime dictionary
427 | # encoding: utf-8
428 | #
429 | # Kaomoji dictionary for Rime input method engine
430 | #
431 | # Created with rime_kaomoji_dict generator
432 | #
433 | # https://github.com/aoguai/rime_kaomoji_dict
434 |
435 | ---
436 | name: {dict_name}
437 | version: "{current_date}"
438 | sort: by_weight
439 | use_preset_vocabulary: false
440 | max_phrase_length: 99
441 | min_phrase_weight: 1
442 | ...
443 |
444 | # {dict_type} entries: {entry_count}
445 | """
446 |
447 | # 确保输出目录存在
448 | os.makedirs(os.path.dirname(output_file), exist_ok=True)
449 |
450 | # 写入词库文件
451 | with open(output_file, 'w', encoding='utf-8') as output_file_obj:
452 | output_file_obj.write(header + content)
453 |
454 | print(f"已生成Rime词库文件: {output_file}")
455 |
456 |
457 | def main():
458 | """主函数"""
459 | args = parse_arguments()
460 |
461 | # 如果没有指定任何操作,默认生成所有类型词库
462 | if not (args.all or args.pinyin or args.kmj or args.shuangpin):
463 | args.all = True
464 |
465 | # 初始化颜文字处理器
466 | processor = KaomojiProcessor()
467 |
468 | # 输入文件列表
469 | input_files = [
470 | 'data/A_kaomoji_dict_data.txt',
471 | 'data/custom_phrase_dict_data.txt',
472 | 'data/lmeee_dict_data.txt',
473 | 'data/sougou_dict_data.txt',
474 | 'data/Temreg_dict_data.txt'
475 | ]
476 |
477 | # 确保输出目录存在
478 | os.makedirs(args.output_dir, exist_ok=True)
479 |
480 | # 使用特殊空格
481 | use_special_space = not args.no_special_space
482 |
483 | # 是否使用去重
484 | use_dedup = not args.no_dedup
485 |
486 | # 临时文件路径
487 | pinyin_txt_file = os.path.join(args.output_dir, 'all_output_result_pinyin.txt')
488 | kmj_txt_file = os.path.join(args.output_dir, 'all_output_result_kmj.txt')
489 |
490 | # 生成拼音版词库(--all或--pinyin或--shuangpin选项)
491 | if args.all or args.pinyin or args.shuangpin:
492 | pinyin_results = generate_pinyin_dictionary(
493 | processor, input_files, pinyin_txt_file,
494 | use_special_space=use_special_space,
495 | use_dedup=use_dedup
496 | )
497 | generate_rime_dict_file(
498 | pinyin_txt_file,
499 | os.path.join(args.output_dir, 'kaomoji_pinyin.dict.yaml'),
500 | 'kaomoji_pinyin',
501 | 'Pinyin'
502 | )
503 |
504 | # 生成kmj版词库(--all或--kmj选项)
505 | if args.all or args.kmj:
506 | kmj_results = generate_kmj_dictionary(
507 | processor, input_files, kmj_txt_file,
508 | use_special_space=use_special_space,
509 | use_dedup=use_dedup
510 | )
511 | generate_rime_dict_file(
512 | kmj_txt_file,
513 | os.path.join(args.output_dir, 'kaomoji_kmj.dict.yaml'),
514 | 'kaomoji_kmj',
515 | 'KMJ'
516 | )
517 |
518 | # 生成双拼版词库(--all选项生成所有方案,--shuangpin选项生成指定方案)
519 | if args.all:
520 | # 生成所有双拼方案的词库
521 | all_schemes = get_all_schemes()
522 | for scheme_name, scheme in all_schemes.items():
523 | shuangpin_txt_file = os.path.join(args.output_dir, f'all_output_result_shuangpin_{scheme_name}.txt')
524 | shuangpin_dict_file = os.path.join(args.output_dir, f'kaomoji_shuangpin_{scheme_name}.dict.yaml')
525 |
526 | # 确保拼音词库已生成
527 | if not os.path.exists(pinyin_txt_file):
528 | print(f"错误: 拼音词库文件 {pinyin_txt_file} 不存在,无法生成双拼词库")
529 | continue
530 |
531 | shuangpin_results, shuangpin_bad_results = generate_shuangpin_dictionary(
532 | pinyin_txt_file, shuangpin_txt_file, scheme,
533 | include_details=False,
534 | use_dedup=use_dedup,
535 | use_special_space=use_special_space
536 | )
537 | generate_rime_dict_file(
538 | shuangpin_txt_file,
539 | shuangpin_dict_file,
540 | f'kaomoji_shuangpin_{scheme_name}',
541 | f'Shuangpin ({scheme_name})'
542 | )
543 | elif args.shuangpin:
544 | # 只生成指定方案的双拼词库
545 | scheme = select_scheme(args.scheme)
546 | shuangpin_txt_file = os.path.join(args.output_dir, f'all_output_result_shuangpin_{args.scheme}.txt')
547 | shuangpin_dict_file = os.path.join(args.output_dir, f'kaomoji_shuangpin_{args.scheme}.dict.yaml')
548 |
549 | shuangpin_results, shuangpin_bad_results = generate_shuangpin_dictionary(
550 | pinyin_txt_file, shuangpin_txt_file, scheme,
551 | include_details=False,
552 | use_dedup=use_dedup,
553 | use_special_space=use_special_space
554 | )
555 | generate_rime_dict_file(
556 | shuangpin_txt_file,
557 | shuangpin_dict_file,
558 | f'kaomoji_shuangpin_{args.scheme}',
559 | f'Shuangpin ({args.scheme})'
560 | )
561 |
562 | print("词库生成完成!")
563 | print(f"输出目录: {os.path.abspath(args.output_dir)}")
564 |
565 |
566 | if __name__ == "__main__":
567 | main()
--------------------------------------------------------------------------------
/kaomoji_processor.py:
--------------------------------------------------------------------------------
1 | """
2 | 颜文字处理模块 - 处理颜文字相关操作
3 |
4 | 主要功能:
5 | 1. 空格替换:将普通空格替换为en空格(U+2002),解决OpenCC分词问题
6 | 2. 颜文字标记:为颜文字添加特定标记,区分于emoji
7 | 3. 格式转换:将不同格式的颜文字数据转换为标准格式
8 | """
9 |
10 | import re
11 | from typing import List, Tuple
12 | from pypinyin import pinyin, Style
13 |
14 |
15 | class KaomojiProcessor:
16 | """
17 | 颜文字处理类,提供颜文字相关的处理功能
18 | """
19 |
20 | def __init__(self):
21 | """初始化颜文字处理器"""
22 | # 禁止的前缀,Rime词库规定某些前缀无法作为开头需要删除
23 | self.invalid_prefixes = ["---", "..."]
24 | # 中文和英文字符的正则表达式
25 | self.chinese_english_pattern = r'^[a-zA-Z\u4e00-\u9fa5]+$'
26 |
27 | def replace_spaces(self, text: str) -> str:
28 | """
29 | 将普通空格(U+0020)替换为en空格(U+2002)
30 |
31 | Args:
32 | text: 包含普通空格的文本
33 |
34 | Returns:
35 | 替换空格后的文本
36 | """
37 | # 替换普通空格为en空格(U+2002)
38 | return text.replace(' ', '\u2002')
39 |
40 | def remove_invalid_prefixes(self, text: str) -> str:
41 | """
42 | 移除无效的前缀
43 |
44 | Args:
45 | text: 需要处理的文本
46 |
47 | Returns:
48 | 移除前缀后的文本
49 | """
50 | result = text.strip()
51 | for prefix in self.invalid_prefixes:
52 | while result.startswith(prefix):
53 | result = result[len(prefix):]
54 | return result
55 |
56 | def process_kaomoji(self, kaomoji: str, use_special_space: bool = True) -> str:
57 | """
58 | 处理颜文字,移除无效前缀并可选择替换空格
59 |
60 | Args:
61 | kaomoji: 原始颜文字
62 | use_special_space: 是否使用特殊空格替换普通空格
63 |
64 | Returns:
65 | 处理后的颜文字
66 | """
67 | result = self.remove_invalid_prefixes(kaomoji)
68 | if use_special_space:
69 | result = self.replace_spaces(result)
70 | return result
71 |
72 | def is_chinese_english_text(self, text: str) -> bool:
73 | """
74 | 检查文本是否只包含中文和英文字符(去除空格后)
75 |
76 | Args:
77 | text: 需要检查的文本
78 |
79 | Returns:
80 | 如果只包含中文和英文字符,返回True;否则返回False
81 | """
82 | return bool(re.match(self.chinese_english_pattern, text.replace(" ", "")))
83 |
84 | def get_pinyin_for_text(self, text: str) -> str:
85 | """
86 | 获取文本的拼音
87 |
88 | Args:
89 | text: 需要转换的文本
90 |
91 | Returns:
92 | 文本的拼音,以空格分隔
93 | """
94 | pinyin_result = pinyin(text, style=Style.NORMAL, heteronym=False)
95 | return ' '.join([item[0] for item in pinyin_result])
96 |
97 | def process_source_data(self,
98 | content: str,
99 | source_type: str,
100 | is_pinyin: bool = True,
101 | use_special_space: bool = True) -> Tuple[List[str], List[str]]:
102 | """
103 | 处理源数据,从不同来源的数据中提取颜文字和对应的拼音或标记
104 |
105 | Args:
106 | content: 源数据内容
107 | source_type: 源数据类型('lmeee', 'Temreg', 'A_kaomoji', 'custom_phrase', 'sougou')
108 | is_pinyin: 是否以拼音格式保存
109 | use_special_space: 是否使用特殊空格替换普通空格
110 |
111 | Returns:
112 | 包含处理结果的元组 (拼音结果列表, kmj结果列表)
113 | """
114 | output_result_pinyin = []
115 | output_result_kmj = []
116 |
117 | # 根据不同的数据源使用不同的正则表达式
118 | pattern = None
119 | chinese_english_pattern = None
120 |
121 | if 'lmeee' in source_type:
122 | pattern = r'(.*?)<\/p>.*?<\/span>'
123 | chinese_english_pattern = self.chinese_english_pattern
124 | elif 'Temreg' in source_type:
125 | pattern = r'^(.*?)\t(.*)\t(.*)$'
126 | elif 'A_kaomoji' in source_type:
127 | pattern = None
128 | elif 'custom_phrase' in source_type:
129 | pattern = r'^(.*?) (.*)$'
130 | elif 'sougou' in source_type:
131 | pattern = r'(.*?)<\/div>.*?
输入文字:(.*?)<\/div>'
132 | chinese_english_pattern = self.chinese_english_pattern
133 |
134 | # 按行处理内容
135 | lines = content.splitlines()
136 | for line in lines:
137 | if pattern:
138 | match = re.search(pattern, line)
139 | if match:
140 | if 'lmeee' in source_type or 'sougou' in source_type:
141 | emoticon = self.process_kaomoji(match.group(1), use_special_space)
142 | chinese_text = match.group(2)
143 | if is_pinyin:
144 | # 去除空格后,检查中文或英文字符是否占据整个字符串
145 | if re.match(chinese_english_pattern, chinese_text.replace(" ", "")):
146 | pinyin_str = self.get_pinyin_for_text(chinese_text)
147 | output_line = f"{emoticon}\t{pinyin_str}\t0\n"
148 | output_result_pinyin.append(output_line)
149 | else:
150 | continue
151 | else:
152 | output_line = f"{emoticon}\tkmj\t0\n"
153 | output_result_kmj.append(output_line)
154 | elif 'Temreg' in source_type:
155 | chinese_text = match.group(2) # 提取拼音
156 | emoticon = self.process_kaomoji(match.group(1), use_special_space)
157 | if is_pinyin:
158 | output_line = f"{emoticon}\t{chinese_text}\t0\n"
159 | output_result_pinyin.append(output_line)
160 | else:
161 | output_line = f"{emoticon}\tkmj\t0\n"
162 | output_result_kmj.append(output_line)
163 | elif 'custom_phrase' in source_type:
164 | emoticon = self.process_kaomoji(match.group(2), use_special_space)
165 | chinese_text = match.group(1) # 提取拼音
166 | if is_pinyin:
167 | output_line = f"{emoticon}\t{chinese_text}\t0\n"
168 | output_result_pinyin.append(output_line)
169 | else:
170 | output_line = f"{emoticon}\tkmj\t0\n"
171 | output_result_kmj.append(output_line)
172 | elif 'A_kaomoji' in source_type:
173 | emoticon = self.process_kaomoji(line.strip(), use_special_space)
174 | output_line = f"{emoticon}\tkmj\t0\n"
175 | output_result_kmj.append(output_line)
176 |
177 | return output_result_pinyin, output_result_kmj
178 |
179 | def process_file(self,
180 | input_filename: str,
181 | output_filename: str = None,
182 | is_pinyin: bool = True,
183 | save_file: bool = True,
184 | use_special_space: bool = True) -> Tuple[List[str], List[str]]:
185 | """
186 | 处理并保存颜文字文件
187 |
188 | Args:
189 | input_filename: 输入文件名
190 | output_filename: 输出文件名,如为None则不保存
191 | is_pinyin: 是否以拼音保存
192 | save_file: 是否保存到文件
193 | use_special_space: 是否使用特殊空格替换普通空格
194 |
195 | Returns:
196 | 包含处理结果的元组 (拼音结果列表, kmj结果列表)
197 | """
198 | try:
199 | # 读取文本文件
200 | with open(input_filename, 'r', encoding='utf-8') as file:
201 | content = file.read()
202 |
203 | # 处理源数据
204 | output_result_pinyin, output_result_kmj = self.process_source_data(
205 | content, input_filename, is_pinyin, use_special_space
206 | )
207 |
208 | # 保存结果到文件
209 | if save_file and output_filename:
210 | with open(output_filename, 'w', encoding='utf-8') as output_file:
211 | if is_pinyin:
212 | if 'A_kaomoji' in input_filename:
213 | raise ValueError("A_kaomoji does not support pinyin conversion.")
214 | if output_result_pinyin:
215 | output_file.writelines(output_result_pinyin)
216 | else:
217 | if output_result_kmj:
218 | output_file.writelines(output_result_kmj)
219 | print(f"结果已保存到{output_filename}文件中")
220 |
221 | return output_result_pinyin, output_result_kmj
222 |
223 | except Exception as e:
224 | print(f"处理文件 {input_filename} 时发生错误: {str(e)}")
225 | return [], []
226 |
227 |
228 | if __name__ == "__main__":
229 | # 简单测试
230 | processor = KaomojiProcessor()
231 | test_kaomoji = "( ゚∀゚) ノ♡"
232 | print(f"原始颜文字: '{test_kaomoji}'")
233 | processed = processor.process_kaomoji(test_kaomoji)
234 | print(f"处理后颜文字: '{processed}'")
235 | print(f"空格编码: {ord(' ')}, 处理后空格编码: {ord(processed[7])}")
--------------------------------------------------------------------------------
/pychaifen/__init__.py:
--------------------------------------------------------------------------------
1 | # 参考 py之拼音拆分 :https://www.jianshu.com/p/35215c6e2b8b
2 |
3 | from Pinyin2Hanzi import DefaultHmmParams
4 | from Pinyin2Hanzi import viterbi
5 |
6 | hmmparams = DefaultHmmParams()
7 |
8 |
9 | def sm(strs):
10 | smlist = 'bpmfdtnlgkhjqxrzcsyw'
11 | nosm = ['eR', 'aN', 'eN', 'iN', 'uN', 'vN', 'nG', 'NG']
12 | rep = {'ZH': 'Zh', 'CH': 'Ch', 'SH': 'Sh'}
13 |
14 | for s in smlist:
15 | strs = strs.replace(s, s.upper())
16 |
17 | for s in nosm:
18 | strs = strs.replace(s, s.lower())
19 |
20 | for s in rep.keys():
21 | strs = strs.replace(s, rep[s])
22 |
23 | for s in nosm:
24 | tmp_num = 0
25 | isOk = False
26 | while (tmp_num < len(strs)) and (isOk == False):
27 | try:
28 | tmp_num = strs.index(s.lower(), tmp_num)
29 | except:
30 | isOk = True
31 | else:
32 | tmp_num = tmp_num + len(s)
33 | if strs[tmp_num:tmp_num + 1].lower() not in smlist:
34 | strs = strs[:tmp_num - 1] + strs[tmp_num - 1:tmp_num].upper() + strs[tmp_num:]
35 |
36 | return strs
37 |
38 |
39 | def onep(strs):
40 | restr = ''
41 | strs = sm(strs)
42 | for s in strs:
43 | if 'A' <= s and s <= 'Z':
44 | restr = restr + ' ' + s
45 | else:
46 | restr = restr + s
47 |
48 | restr = restr[1:]
49 | restr = restr.lower()
50 | return restr.split(' ')
51 |
52 |
53 | def quanp2shuangp(quanpin):
54 | syllablelist = onep(sm(quanpin))
55 | return syllablelist
56 |
57 |
58 | def py2hz(syllablelist):
59 | """
60 | 用 Pinyin2Hanzi 库将音节列表识别为汉语词组,汉字可辅助校验全拼音节划分是否正确
61 | """
62 | result = viterbi(hmm_params=hmmparams, observations=(syllablelist), path_num=1, log=True)
63 | for item in result:
64 | phrase = ''.join(item.path)
65 | # print(phrase)
66 | # print(item.score, '/'.join(item.path))
67 |
68 | return phrase
69 |
70 |
71 | if __name__ == "__main__":
72 | quanpin = 'yanwenzi'
73 | l = quanp2shuangp(quanpin)
74 | phrase = py2hz(l)
75 | print(quanpin + '\t拆分并识别为\t' + phrase)
76 | pass
77 |
--------------------------------------------------------------------------------
/pyshuangpin/__init__.py:
--------------------------------------------------------------------------------
1 | from pyshuangpin.scheme import Scheme, xiaohe, ziranma, sogou, microsoft, znabc
2 |
3 | import pypinyin
4 |
5 |
6 | def shuangpin(hans, scheme: Scheme, **kwargs):
7 | pinyin = pypinyin.pinyin(hans, **kwargs)
8 | if scheme == Scheme.Xiaohe:
9 | scheme_dict = xiaohe.scheme
10 | elif scheme == Scheme.Ziranma:
11 | scheme_dict = ziranma.scheme
12 | elif scheme == Scheme.Sogou:
13 | scheme_dict = sogou.scheme
14 | elif scheme == Scheme.Microsoft:
15 | scheme_dict = microsoft.scheme
16 | elif scheme == Scheme.ZNABC:
17 | scheme_dict = znabc.scheme
18 | else:
19 | raise NotImplementedError('scheme not implemented')
20 |
21 | for key, value in scheme_dict.items():
22 | for item in pinyin:
23 | for index in range(len(item)):
24 | item[index] = item[index].replace(key, value)
25 |
26 | return pinyin
27 | def shuangpin_by_syllabl(syllablelist, scheme: Scheme, **kwargs):
28 |
29 | """
30 | 使用全拼音节列表导出双拼编码
31 | """
32 | def l2ll(l):
33 | ll = []
34 | for index in range(len(l)):
35 | ll.append([l[index]])
36 | # print(ll)
37 | return ll
38 |
39 | pinyin=l2ll(syllablelist)
40 |
41 | if scheme == Scheme.Xiaohe:
42 | scheme_dict = xiaohe.scheme
43 | elif scheme == Scheme.Ziranma:
44 | scheme_dict = ziranma.scheme
45 | elif scheme == Scheme.Sogou:
46 | scheme_dict = sogou.scheme
47 | elif scheme == Scheme.Microsoft:
48 | scheme_dict = microsoft.scheme
49 | elif scheme == Scheme.ZNABC:
50 | scheme_dict = znabc.scheme
51 | else:
52 | raise NotImplementedError('scheme not implemented')
53 |
54 | for key, value in scheme_dict.items():
55 | for item in pinyin:
56 | for index in range(len(item)):
57 | item[index] = item[index].replace(key, value)
58 |
59 | return pinyin
60 |
--------------------------------------------------------------------------------
/pyshuangpin/scheme/__init__.py:
--------------------------------------------------------------------------------
1 | from enum import Enum
2 |
3 |
4 | class Scheme(Enum):
5 | 小鹤 = 1
6 | Xiaohe = 1
7 |
8 | 自然码 = 2
9 | Ziranma = 2
10 |
11 | 搜狗 = 3
12 | Sogou = 3
13 |
14 | 微软 = 4
15 | Microsoft = 4
16 |
17 | 智能ABC = 5
18 | ZNABC = 5
19 |
--------------------------------------------------------------------------------
/pyshuangpin/scheme/microsoft.py:
--------------------------------------------------------------------------------
1 | scheme = {
2 | 'v': 'y',
3 | 'iong': 's',
4 | 'uang': 's',
5 | 'iang': 'd',
6 | 'uang': 'd',
7 | 'uan': 'r',
8 | 'uai': 'y',
9 | 'eng': 'g',
10 | 'ang': 'h',
11 | 'iao': 'c',
12 | 'ian': 'm',
13 | 'ing': ';',
14 | 'iu': 'q',
15 | 'ia': 'w',
16 | 'ua': 'w',
17 | 'er': 'r',
18 | 'sh': 'u',
19 | 'ch': 'i',
20 | 'uo': 'o',
21 | 'un': 'p',
22 | 'en': 'f',
23 | 'an': 'j',
24 | 'ao': 'k',
25 | 'ai': 'l',
26 | 'ei': 'z',
27 | 'ie': 'x',
28 | 'zh': 'v',
29 | 'ui': 'v',
30 | 've': 'v',
31 | 'ou': 'b',
32 | 'in': 'n',
33 | }
34 |
--------------------------------------------------------------------------------
/pyshuangpin/scheme/sogou.py:
--------------------------------------------------------------------------------
1 | scheme = {
2 | 'v': 'y',
3 | 'iang': 'd',
4 | 'uang': 'd',
5 | 'iong': 's',
6 | 'uai': 'y',
7 | 'uan': 'r',
8 | 'ang': 'h',
9 | 'eng': 'g',
10 | 'iao': 'c',
11 | 'ong': 's',
12 | 'ian': 'm',
13 | 'ing': ';',
14 | 'iu': 'q',
15 | 'ia': 'w',
16 | 'ua': 'w',
17 | 'er': 'r',
18 | 'ue': 't',
19 | 've': 't',
20 | 'sh': 'u',
21 | 'ch': 'i',
22 | 'uo': 'o',
23 | 'un': 'p',
24 | 'en': 'f',
25 | 'an': 'j',
26 | 'ao': 'k',
27 | 'ai': 'l',
28 | 'ei': 'z',
29 | 'ie': 'x',
30 | 'zh': 'v',
31 | 'ui': 'v',
32 | 'ou': 'b',
33 | 'in': 'n',
34 | }
35 |
--------------------------------------------------------------------------------
/pyshuangpin/scheme/xiaohe.py:
--------------------------------------------------------------------------------
1 | scheme = {
2 | 'uang': 'l',
3 | 'iang': 'l',
4 | 'iong': 's',
5 | 'eng': 'g',
6 | 'ing': 'k',
7 | 'ong': 's',
8 | 'ang': 'h',
9 | 'uai': 'k',
10 | 'uan': 'r',
11 | 'iao': 'n',
12 | 'ian': 'm',
13 | 'ui': 'q',
14 | 'ei': 'w',
15 | 'ue': 't',
16 | 've': 't',
17 | 'un': 'y',
18 | 'sh': 'u',
19 | 'ch': 'i',
20 | 'uo': 'o',
21 | 'ie': 'p',
22 | 'ai': 'd',
23 | 'en': 'f',
24 | 'an': 'j',
25 | 'ou': 'z',
26 | 'ua': 'x',
27 | 'ia': 'x',
28 | 'ao': 'c',
29 | 'ui': 'v',
30 | 'vi': 'v',
31 | 'zh': 'v',
32 | 'in': 'b',
33 | }
34 |
--------------------------------------------------------------------------------
/pyshuangpin/scheme/ziranma.py:
--------------------------------------------------------------------------------
1 | scheme = {
2 | 'iang': 'd',
3 | 'iong': 's',
4 | 'uang': 'd',
5 | 'uan': 'r',
6 | 'ing': 'y',
7 | 'ian': 'm',
8 | 'iao': 'c',
9 | 'ong': 's',
10 | 'eng': 'g',
11 | 'ang': 'h',
12 | 'uai': 'y',
13 | 'iu': 'q',
14 | 'ia': 'w',
15 | 'ua': 'w',
16 | 'ue': 't',
17 | 've': 't',
18 | 'sh': 'u',
19 | 'ch': 'i',
20 | 'uo': 'o',
21 | 'un': 'p',
22 | 'en': 'f',
23 | 'an': 'j',
24 | 'ao': 'k',
25 | 'ai': 'l',
26 | 'ei': 'z',
27 | 'ie': 'x',
28 | 'zh': 'v',
29 | 'ui': 'v',
30 | 'ou': 'b',
31 | 'in': 'n',
32 | }
33 |
--------------------------------------------------------------------------------
/pyshuangpin/scheme/znabc.py:
--------------------------------------------------------------------------------
1 | scheme = {
2 | 'iang': 't',
3 | 'uang': 't',
4 | 'iong': 's',
5 | 'uan': 'p',
6 | 'ian': 'w',
7 | 'ing': 'y',
8 | 'ong': 's',
9 | 'eng': 'g',
10 | 'ang': 'h',
11 | 'iao': 'z',
12 | 'uai': 'c',
13 | 'ei': 'q',
14 | 'ch': 'e',
15 | 'er': 'r',
16 | 'iu': 'r',
17 | 'ou': 'o',
18 | 'zh': 'a',
19 | 'ia': 'd',
20 | 'ua': 'd',
21 | 'en': 'f',
22 | 'an': 'j',
23 | 'ao': 'k',
24 | 'ai': 'l',
25 | 'ie': 'x',
26 | 'in': 'c',
27 | 'sh': 'v',
28 | 've': 'v',
29 | 'ou': 'b',
30 | 'un': 'n',
31 | 'ue': 'm',
32 | 'ui': 'm',
33 | }
34 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aoguai/rime_kaomoji_dict/2f10ddca83f4cd87f41672442d27943f733b488f/requirements.txt
--------------------------------------------------------------------------------
/test_display.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | """
3 | 颜文字特殊空格显示测试脚本
4 |
5 | 此脚本用于测试特殊空格(U+2002)在当前环境下的显示效果,
6 | 以确保处理后的颜文字能正常显示。
7 | """
8 |
9 | import sys
10 |
11 | def print_with_info(text, label):
12 | """打印字符串及其空格信息"""
13 | print(f"{label}: '{text}'")
14 |
15 | # 打印空格信息
16 | spaces_info = []
17 | for i, char in enumerate(text):
18 | if char.isspace():
19 | code_point = ord(char)
20 | name = space_name(code_point)
21 | spaces_info.append(f"位置 {i}: U+{code_point:04X} ({name})")
22 |
23 | if spaces_info:
24 | print("空格信息:")
25 | for info in spaces_info:
26 | print(f" {info}")
27 | else:
28 | print(" 无空格")
29 | print()
30 |
31 | def space_name(code_point):
32 | """根据代码点返回空格名称"""
33 | if code_point == 0x0020:
34 | return "普通空格 SPACE"
35 | elif code_point == 0x2002:
36 | return "En空格 EN SPACE"
37 | elif code_point == 0x2003:
38 | return "Em空格 EM SPACE"
39 | elif code_point == 0x2004:
40 | return "三分之一Em空格 THREE-PER-EM SPACE"
41 | elif code_point == 0x2005:
42 | return "四分之一Em空格 FOUR-PER-EM SPACE"
43 | elif code_point == 0x2006:
44 | return "六分之一Em空格 SIX-PER-EM SPACE"
45 | elif code_point == 0x2007:
46 | return "数字空格 FIGURE SPACE"
47 | elif code_point == 0x2008:
48 | return "标点空格 PUNCTUATION SPACE"
49 | elif code_point == 0x2009:
50 | return "窄空格 THIN SPACE"
51 | elif code_point == 0x200A:
52 | return "发空格 HAIR SPACE"
53 | elif code_point == 0x200B:
54 | return "零宽空格 ZERO WIDTH SPACE"
55 | elif code_point == 0x00A0:
56 | return "不换行空格 NO-BREAK SPACE"
57 | elif code_point == 0x3000:
58 | return "表意文字空格 IDEOGRAPHIC SPACE"
59 | else:
60 | return f"未知空格 Unknown space character"
61 |
62 | def main():
63 | """主函数"""
64 | print("颜文字特殊空格显示测试\n")
65 |
66 | # 测试颜文字样例
67 | test_cases = [
68 | ("普通空格", "( ゚∀゚) ノ♡"),
69 | ("En空格", "(\u2002゚∀゚)\u2002ノ♡"),
70 | ("混合空格", "( ゚∀゚)\u2002ノ♡"),
71 | ]
72 |
73 | # 打印系统信息
74 | print(f"Python版本: {sys.version}")
75 | print(f"系统编码: {sys.getdefaultencoding()}")
76 | print(f"控制台编码: {sys.stdout.encoding}\n")
77 |
78 | # 测试各种空格
79 | print("空格字符测试:")
80 | print(f"普通空格 (U+0020): ' '")
81 | print(f"En空格 (U+2002): '\u2002'")
82 | print(f"Em空格 (U+2003): '\u2003'")
83 | print(f"不换行空格 (U+00A0): '\u00A0'")
84 | print(f"表意文字空格 (U+3000): '\u3000'\n")
85 |
86 | # 测试颜文字
87 | print("颜文字样例测试:")
88 | for label, text in test_cases:
89 | print_with_info(text, label)
90 |
91 | # 自定义测试
92 | print("你可以输入自定义颜文字进行测试 (输入'q'退出):")
93 | while True:
94 | user_input = input("> ")
95 | if user_input.lower() == 'q':
96 | break
97 | print_with_info(user_input, "用户输入")
98 |
99 | # 替换测试
100 | print("\n空格替换测试:")
101 | test_text = "( ゚∀゚) ノ♡"
102 | replaced_text = test_text.replace(' ', '\u2002')
103 | print_with_info(test_text, "原始文本")
104 | print_with_info(replaced_text, "替换后文本")
105 |
106 | # 结论
107 | print("\n测试结论:")
108 | print("1. 如果En空格(U+2002)能够正常显示,且视觉效果与普通空格相近,则颜文字处理正常")
109 | print("2. 特殊空格主要用于解决OpenCC分词问题,不会影响正常显示效果")
110 |
111 | if __name__ == "__main__":
112 | main()
--------------------------------------------------------------------------------