├── .gitignore ├── .travis.yml ├── CONTRIBUTING.rst ├── LICENSE ├── README.md ├── fastlangid ├── __init__.py ├── langid.py ├── models │ ├── lid.176.ftz │ ├── model_s.ftz │ ├── punc.dict │ └── unicode_lang.dict ├── regex_rule.py └── utils.py ├── setup.cfg ├── setup.py └── tests ├── __init__.py ├── fasttext_issues.py ├── test_regex.py └── testcases.py /.gitignore: -------------------------------------------------------------------------------- 1 | Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | .idea/ 5 | README 6 | icwb2-data 7 | wili-2018 8 | 9 | # C extensions 10 | *.so 11 | .vscode 12 | # Distribution / packaging 13 | .Python 14 | env/ 15 | bin/ 16 | build/ 17 | develop-eggs/ 18 | dist/ 19 | eggs/ 20 | lib/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: python 3 | python: 4 | - '3.4' 5 | - '3.5' 6 | - '3.6' 7 | before_install: 8 | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test 9 | - sudo apt-get -y update 10 | - sudo apt-get -y install build-essential 11 | - sudo apt-get -y install g++-5 12 | - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 1 13 | - g++ --version 14 | install: 15 | - pip install codecov 16 | - pip install . 17 | script: 18 | - python setup.py test 19 | after_success: 20 | - codecov -------------------------------------------------------------------------------- /CONTRIBUTING.rst: -------------------------------------------------------------------------------- 1 | .. highlight:: shell 2 | 3 | ============ 4 | Contributing 5 | ============ 6 | 7 | Contributions are welcome, and they are greatly appreciated! Every little bit 8 | helps, and credit will always be given. 9 | 10 | You can contribute in many ways: 11 | 12 | Types of Contributions 13 | ---------------------- 14 | 15 | Report Bugs 16 | ~~~~~~~~~~~ 17 | 18 | Report bugs at https://github.com/currentsapi/fastlangid/issues. 19 | 20 | If you are reporting a bug, please include: 21 | 22 | * Your operating system name and version. 23 | * Any details about your local setup that might be helpful in troubleshooting. 24 | * Detailed steps to reproduce the bug. 25 | 26 | Fix Bugs 27 | ~~~~~~~~ 28 | 29 | Look through the GitHub issues for bugs. Anything tagged with "bug" and "help 30 | wanted" is open to whoever wants to implement it. 31 | 32 | Implement Features 33 | ~~~~~~~~~~~~~~~~~~ 34 | 35 | Look through the GitHub issues for features. Anything tagged with "enhancement" 36 | and "help wanted" is open to whoever wants to implement it. 37 | 38 | Write Documentation 39 | ~~~~~~~~~~~~~~~~~~~ 40 | 41 | fastlangid could always use more documentation, whether as part of the 42 | official fastlangid docs, in docstrings, or even on the web in blog posts, 43 | articles, and such. 44 | 45 | Submit Feedback 46 | ~~~~~~~~~~~~~~~ 47 | 48 | The best way to send feedback is to file an issue at https://github.com/currentsapi/fastlangid/issues. 49 | 50 | If you are proposing a feature: 51 | 52 | * Explain in detail how it would work. 53 | * Keep the scope as narrow as possible, to make it easier to implement. 54 | * Remember that this is a volunteer-driven project, and that contributions 55 | are welcome :) 56 | 57 | Get Started! 58 | ------------ 59 | 60 | Ready to contribute? Here's how to set up `fastlangid` for local development. 61 | 62 | 1. Fork the `fastlangid` repo on GitHub. 63 | 2. Clone your fork locally:: 64 | 65 | $ git clone git@github.com:your_name_here/fastlangid.git 66 | 67 | 3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:: 68 | 69 | $ mkvirtualenv fastlangid 70 | $ cd fastlangid/ 71 | $ python setup.py develop 72 | 73 | 4. Create a branch for local development:: 74 | 75 | $ git checkout -b name-of-your-bugfix-or-feature 76 | 77 | Now you can make your changes locally. 78 | 79 | 5. When you're done making changes, check that your changes pass flake8 and the 80 | tests, including testing other Python versions with tox:: 81 | 82 | $ python -m unittest 83 | 84 | 85 | 6. Commit your changes and push your branch to GitHub:: 86 | 87 | $ git add . 88 | $ git commit -m "Your detailed description of your changes." 89 | $ git push origin name-of-your-bugfix-or-feature 90 | 91 | 7. Submit a pull request through the GitHub website. 92 | 93 | Pull Request Guidelines 94 | ----------------------- 95 | 96 | Before you submit a pull request, check that it meets these guidelines: 97 | 98 | 1. The pull request should include tests. 99 | 2. If the pull request adds functionality, the docs should be updated. Put 100 | your new functionality into a function with a docstring, and add the 101 | feature to the list in README.rst. 102 | 103 | Tips 104 | ---- 105 | 106 | To run a subset of tests:: 107 | 108 | $ python -m unittest test/testcases.py 109 | 110 | 111 | Deploying 112 | --------- 113 | 114 | A reminder for the maintainers on how to deploy. 115 | Make sure all your changes are committed (including an entry in HISTORY.rst). 116 | Then run:: 117 | 118 | $ bump2version patch # possible: major / minor / patch 119 | $ git push 120 | $ git push --tags 121 | 122 | Travis will then deploy to PyPI if tests pass. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fastlangid 2 | 3 | [![codecov](https://codecov.io/gh/currentsapi/fastlangid/branch/master/graph/badge.svg)](https://codecov.io/gh/currentsapi/fastlangid) [![PyPI version](https://badge.fury.io/py/fastlangid.svg)](https://badge.fury.io/py/fastlangid) 4 | 5 | 6 | The only language identification that includes Cantonese (廣東話), traditional and simplified Chinese. 7 | 8 | 9 | ## Why and who is this package for? 10 | 11 | This is a language identification language focus on providing higher accuracy in Japanese, Korean, and Chinese language compares to the original Fasttext model ( lid.176.ftz ). This package also include identification for cantonese, simplified and traditional Chinese language. 12 | 13 | First stage model F1, which is same from fasttext language identification model 14 | 15 | | Model | F1@1 | 16 | |-----------------------|--------| 17 | | lid.176.ftz | 0.977 | 18 | 19 | We can achieve higher accuracy by including an additional language identification model to handle low confidence scores for Japanese, Korean, Chinese. The table below shows F1 (k=1) scores in identifying 3 languages. (we updated the validation corpus which is much harder to the first revision : shorter text, latest news text ) 20 | 21 | 22 | | 2nd-Stage Model | F1@1 | Acc@1 | 23 | |-----------------------|--------|--------| 24 | | version 1.0.0 | 0.826 | 0.744 | 25 | | master | 0.801 | 0.894 | 26 | 27 | Master version is also trained with identifying Cantonese (zh-yue) text from Mozilla Common Voice corpus text. Currently the model is senstive to non cantonese text mixing inside the sentence, hence please use the model with care. 28 | 29 | To use Cantonese prediction, it recommended to force inference using the second stage prediction 30 | 31 | ``` 32 | lang_code = langid.predict('平嘢有冇好嘢?', force_second=True) 33 | ``` 34 | 35 | 36 | For more edge case detail please refer to [fasttext_issues.py](tests/fasttext_issues.py) 37 | 38 | 39 | The training data for the supplement model was drawn from Common Crawl Corpus and [Currents API](https://currentsapi.services/en) internal language dataset. 40 | 41 | We wish to support Cantonese language in the upcoming future. Feel free to contact us if you would like to provide any related corpus. 42 | 43 | 44 | ## Install 45 | 46 | 47 | ```bash 48 | $ pip install fastlangid 49 | ``` 50 | 51 | ## Example 52 | 53 | Only one function call away to handle single or multiple sentences 54 | 55 | ``` 56 | from fastlangid.langid import LID 57 | langid = LID() 58 | result = langid.predict('This is a test') 59 | print(result) 60 | ``` 61 | 62 | 63 | ``` 64 | from fastlangid.langid import LID 65 | langid = LID() 66 | examples = [ 67 | '中文繁體', 68 | '中文简体', 69 | 'Lorem Ipsum is simply dummy text of the printing and typesetting industry', 70 | 'Lorem Ipsum adalah text contoh digunakan didalam industri pencetakan dan typesetting', 71 | 'Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression' 72 | ] 73 | results = langid.predict(examples) 74 | print(results) 75 | ``` 76 | 77 | 78 | 79 | ## Supported Languages 80 | 81 | Supports 177 languages. The ISO codes for the corresponding languages are as below. 82 | 83 | ``` 84 | af als am an ar arz as ast av az azb ba bar bcl be bg bh bn bo bpy br bs bxr ca cbk 85 | ce ceb ckb co cs cv cy da de diq dsb dty dv el eml en eo es et eu fa fi fr frr fy ga 86 | gd gl gn gom gu gv he hi hif hr hsb ht hu hy ia id ie ilo io is it ja jbo jv ka kk km 87 | kn ko krc ku kv kw ky la lb lez li lmo lo lrc lt lv mai mg mhr min mk ml mn mr mrj ms 88 | mt mwl my myv mzn nah nap nds ne new nl nn no oc or os pa pam pfl pl pms pnb ps pt qu 89 | rm ro ru rue sa sah sc scn sco sd sh si sk sl so sq sr su sv sw ta te tg th tk tl tr 90 | tt tyv ug uk ur uz vec vep vi vls vo wa war wuu xal xmf yi yo yue zh-hans zh-hant zh-yue 91 | ``` 92 | 93 | ## Caveats 94 | 95 | Bag of words method doesn't work well in short text classification as found by [this article by Apple](https://machinelearning.apple.com/research/language-identification-from-very-short-strings). Hence it's recommend that you ensure the text have at least more than 5 characters/words. 96 | 97 | Cantonese language identification is trained on daily conversation text which may not represent well in article types text. Hence it may confuse with traditional chinese (zh-hant) as they share the exact same characters. 98 | 99 | 100 | ## Reference 101 | 102 | ### Enriching Word Vectors with Subword Information 103 | 104 | [1] P. Bojanowski\*, E. Grave\*, A. Joulin, T. Mikolov, [*Enriching Word Vectors with Subword Information*](https://arxiv.org/abs/1607.04606) 105 | 106 | ``` 107 | @article{bojanowski2016enriching, 108 | title={Enriching Word Vectors with Subword Information}, 109 | author={Bojanowski, Piotr and Grave, Edouard and Joulin, Armand and Mikolov, Tomas}, 110 | journal={arXiv preprint arXiv:1607.04606}, 111 | year={2016} 112 | } 113 | ``` 114 | 115 | ### Bag of Tricks for Efficient Text Classification 116 | 117 | [2] A. Joulin, E. Grave, P. Bojanowski, T. Mikolov, [*Bag of Tricks for Efficient Text Classification*](https://arxiv.org/abs/1607.01759) 118 | 119 | ``` 120 | @article{joulin2016bag, 121 | title={Bag of Tricks for Efficient Text Classification}, 122 | author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Mikolov, Tomas}, 123 | journal={arXiv preprint arXiv:1607.01759}, 124 | year={2016} 125 | } 126 | ``` 127 | 128 | ### FastText.zip: Compressing text classification models 129 | 130 | [3] A. Joulin, E. Grave, P. Bojanowski, M. Douze, H. Jégou, T. Mikolov, [*FastText.zip: Compressing text classification models*](https://arxiv.org/abs/1612.03651) 131 | 132 | ``` 133 | @article{joulin2016fasttext, 134 | title={FastText.zip: Compressing text classification models}, 135 | author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Douze, Matthijs and J{\'e}gou, H{\'e}rve and Mikolov, Tomas}, 136 | journal={arXiv preprint arXiv:1612.03651}, 137 | year={2016} 138 | } 139 | ``` 140 | 141 | ## License 142 | 143 | [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcurrentsapi%2Ffastlangid.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fcurrentsapi%2Ffastlangid?ref=badge_large) 144 | -------------------------------------------------------------------------------- /fastlangid/__init__.py: -------------------------------------------------------------------------------- 1 | from .langid import LID 2 | 3 | _CACHE = {} 4 | 5 | def detect(text, **params): 6 | if 'model' not in _CACHE: 7 | _CACHE['model'] = LID() 8 | return _CACHE['model'].predict(text, **params) 9 | -------------------------------------------------------------------------------- /fastlangid/langid.py: -------------------------------------------------------------------------------- 1 | from __future__ import division, unicode_literals 2 | 3 | import os, sys, contextlib 4 | from fasttext import load_model 5 | import fasttext 6 | from fastlangid.utils import ( 7 | clean_text, 8 | only_punctuations, 9 | UNCERTAIN_SETS, 10 | UNK_CLS, 11 | REGEX_NOT_SUPPORT, 12 | CHINESE_FAMILY_CODES 13 | ) 14 | from fastlangid.regex_rule import find_matched_language 15 | 16 | 17 | fasttext.FastText.eprint = lambda x: None 18 | if sys.version_info[0] >= 3: 19 | unicode = str 20 | 21 | 22 | MODEL_FILE = os.path.join(os.path.dirname(__file__), 'models', 'lid.176.ftz') 23 | SUPPLEMENT_MODLE_FILE = os.path.join(os.path.dirname(__file__), 'models', 'model_s.ftz') 24 | 25 | 26 | class LID(): 27 | def __init__(self, custom_model=None, sup_custom_model=None): 28 | self.model_file = MODEL_FILE 29 | if custom_model is not None: 30 | self.model_file = custom_model 31 | if not os.path.exists(custom_model): 32 | raise OSError('Custom model path not found at '+ str(custom_model)) 33 | 34 | self.sup_model_file = SUPPLEMENT_MODLE_FILE 35 | if sup_custom_model is not None: 36 | self.sup_model_file = sup_custom_model 37 | if not os.path.exists(sup_custom_model): 38 | raise OSError('Custom supplement model path not found at ' + str(sup_custom_model)) 39 | fasttext.FastText.eprint = print 40 | 41 | with open(os.devnull, "w") as f, contextlib.redirect_stdout(f): 42 | self.sup_model = load_model(self.sup_model_file) 43 | self.model = load_model(self.model_file) 44 | 45 | def _second_stage(self, text, k, prob, filter_only_han_char=False): 46 | labels_, probs_ = self.sup_model.predict(text, k=10) 47 | 48 | lang_ids = list(map(lambda x: x.replace("__label__", ""), labels_)) 49 | if filter_only_han_char: 50 | results = [ (lang_id, probs_[idx] ) for idx, lang_id in enumerate(lang_ids) if lang_id in CHINESE_FAMILY_CODES] 51 | else: 52 | results = list(zip(lang_ids, probs_)) 53 | if prob: # validate prob is not None 54 | return results[:k] 55 | 56 | return [r[0] for r in results[:k] ] if k > 1 else results[0][0] 57 | 58 | def _predict_text(self, text, supplement_threshold=0.93, k=1, prob=False, force_second=False): 59 | 60 | k = max(1, k) 61 | 62 | labels, probs = self.model.predict(text, k=max(3, k)) 63 | lang_ids = list(map(lambda x: x.replace("__label__", ""), labels)) 64 | 65 | if force_second: 66 | return self._second_stage(text, k, prob) 67 | # fasttext models usually confuse chinese, korean, japanese words 68 | # if the model is not so sure we pass to our model to reduce down the uncertainty 69 | if lang_ids[0] in UNCERTAIN_SETS and (probs[0] < supplement_threshold): 70 | return self._second_stage(text, k, prob) 71 | # predict chinese: now we want to know which chinese family it belongs 72 | elif (lang_ids[0] == 'zh' and probs[0] >= supplement_threshold): 73 | return self._second_stage(text, k, prob, filter_only_han_char=True) 74 | 75 | 76 | valid_langs = [] 77 | valid_lang_ids = [] 78 | 79 | for lang_id, p in zip(lang_ids, probs): 80 | valid_langs.append((lang_id, p)) 81 | valid_lang_ids.append(lang_id) 82 | 83 | # return list of predictions 84 | if prob: 85 | return valid_langs[:k] if k > 1 else valid_langs[0] 86 | return valid_lang_ids[:k] if k > 1 else valid_lang_ids[0] 87 | 88 | def clean_up(self, text, full_clean=False): 89 | if '\n' in text: # cleanup 90 | text = text.replace('\n', ' ') 91 | if full_clean: 92 | text = clean_text(text) 93 | return text 94 | 95 | def predict(self, text, full_clean=False, supplement_threshold=0.9, k=1, prob=False, force_second=False ): 96 | if isinstance(text, unicode): 97 | text = self.clean_up(text) 98 | if len(text) == 0 or only_punctuations(text[:50]): 99 | output = UNK_CLS 100 | if prob: 101 | output = (UNK_CLS, 1.0) 102 | if k > 1: 103 | output = [output] 104 | return output 105 | return self._predict_text(text, supplement_threshold=supplement_threshold, k=k, prob=prob, force_second=force_second) 106 | else: 107 | batch = [ self.clean_up(i, full_clean=full_clean) for i in text ] 108 | return [ self._predict_text(b, supplement_threshold=supplement_threshold, k=k, prob=prob, force_second=force_second) for b in batch ] 109 | 110 | -------------------------------------------------------------------------------- /fastlangid/models/lid.176.ftz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/currentslab/fastlangid/10cb4c30bdca170c5862b017174a7c4a6caee4f1/fastlangid/models/lid.176.ftz -------------------------------------------------------------------------------- /fastlangid/models/model_s.ftz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/currentslab/fastlangid/10cb4c30bdca170c5862b017174a7c4a6caee4f1/fastlangid/models/model_s.ftz -------------------------------------------------------------------------------- /fastlangid/models/punc.dict: -------------------------------------------------------------------------------- 1 | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~!?。。"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、 、〃〈〉《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏﹑﹔· -------------------------------------------------------------------------------- /fastlangid/models/unicode_lang.dict: -------------------------------------------------------------------------------- 1 | U+3000-U+3096 ja 2 | U+30A0-U+30FF ja 3 | U+3400-U+4DB5U+4E00-U+9FCBU+F900-U+FA6A zh-hans ja zh-hant 4 | U+AC00-U+D7FFh ko 5 | U+0600-U+06FF ar 6 | U+0E00-U+0E7F th 7 | U+0020-U+002F vi 8 | U+0030-U+0039 vi 9 | U+003A-U+0040 vi 10 | U+0041-U+005A vi 11 | U+005B-U+0060 vi 12 | U+0061-U+007A vi 13 | U+007B-U+007E vi 14 | U+00C0-U+00C3 vi 15 | U+00C8-U+00CA vi 16 | U+00CC-U+00CD vi 17 | U+00D0 vi 18 | U+00D2-U+00D5 vi 19 | U+00D9-U+00DA vi 20 | U+00DD vi 21 | U+00E0-U+00E3 vi 22 | U+00E8-U+00EA vi 23 | U+00EC-U+00ED vi 24 | U+00F2-U+00F5 vi 25 | U+00F9-U+00FA vi 26 | U+00FD vi 27 | U+0102-U+0103 vi 28 | U+0110-U+0111 vi 29 | U+0128-U+0129 vi 30 | U+0168-U+0169 vi 31 | U+01A0-U+01B0 vi 32 | U+1EA0-U+1EF9 vi 33 | U+02C6-U+0323 vi 34 | A-Za-zU+00E0U+00E8U+00E9U+00ECU+00F2U+00F3U+00F9 it 35 | U+E01-U+E3A th 36 | U+E40-U+E4E th 37 | U+C0-U+C3 vi 38 | U+C8-U+CA vi 39 | U+CC-U+CD vi 40 | U+D2-U+D5 vi 41 | U+D9-U+DA vi 42 | U+DD vi 43 | U+E0-U+E3 vi 44 | U+E8-U+EA vi 45 | U+EC-U+ED vi 46 | U+F2-U+F5 vi 47 | U+F9-U+FA vi 48 | U+FD vi 49 | U+102-U+103 vi 50 | U+110-U+111 vi 51 | U+128-U+129 vi 52 | U+168-U+169 vi 53 | U+1A0-U+1A1 vi 54 | U+1AF-U+1B0 vi 55 | U+301C ko ja 56 | U+30FB ko 57 | U+3131 ko 58 | U+3134 ko 59 | U+3137 ko 60 | U+3139 ko 61 | U+3141-U+3142 ko 62 | U+3145 ko 63 | U+3147-U+3148 ko 64 | U+314A-U+314E ko 65 | U+AC00-U+D7A3 ko 66 | U+3001-U+3003 ja 67 | U+3005 ja 68 | U+3008-U+3011 ja 69 | U+3014-U+3015 ja 70 | U+3041-U+3093 ja 71 | U+309D-U+309E ja 72 | U+30A1-U+30F6 ja 73 | U+30FB-U+30FE ja 74 | U+4E00-U+4E01 zh-hans ja zh-hant 75 | U+4E03 zh-hans ja zh-hant 76 | U+4E07-U+4E0B ja 77 | U+4E0D-U+4E0E ja 78 | U+4E14 ja zh-hant 79 | U+4E16 zh-hans ja zh-hant 80 | U+4E18-U+4E19 ja zh-hant 81 | U+4E21 ja 82 | U+4E26 ja zh-hant 83 | U+4E2D zh-hans ja zh-hant 84 | U+4E32 zh-hans ja zh-hant 85 | U+4E38-U+4E39 ja zh-hant 86 | U+4E3B-U+4E3C ja 87 | U+4E45 zh-hans ja zh-hant 88 | U+4E4F ja 89 | U+4E57 ja 90 | U+4E59 ja 91 | U+4E5D-U+4E5E ja 92 | U+4E71 ja 93 | U+4E73 ja 94 | U+4E7E zh-hans ja zh-hant 95 | U+4E80 ja 96 | U+4E86 zh-hans ja zh-hant 97 | U+4E88-U+4E89 zh-hans ja 98 | U+4E8B-U+4E8C zh-hans ja zh-hant 99 | U+4E92 ja 100 | U+4E94-U+4E95 zh-hans ja zh-hant 101 | U+4E9C ja 102 | U+4EA1 zh-hans ja zh-hant 103 | U+4EA4 ja 104 | U+4EAB-U+4EAD ja 105 | U+4EBA zh-hans ja zh-hant 106 | U+4EC1 ja 107 | U+4ECA-U+4ECB zh-hans ja zh-hant 108 | U+4ECF ja 109 | U+4ED5-U+4ED6 ja 110 | U+4ED8-U+4ED9 zh-hans ja zh-hant 111 | U+4EE3-U+4EE5 zh-hans ja zh-hant 112 | U+4EEE ja 113 | U+4EF0 zh-hans ja zh-hant 114 | U+4EF2 zh-hans ja zh-hant 115 | U+4EF6 ja zh-hant 116 | U+4EFB zh-hans ja zh-hant 117 | U+4F01 zh-hans ja zh-hant 118 | U+4F0E-U+4F11 ja 119 | U+4F1A ja 120 | U+4F1D ja 121 | U+4F2F ja 122 | U+4F34 zh-hans ja zh-hant 123 | U+4F38 zh-hans ja zh-hant 124 | U+4F3A ja 125 | U+4F3C ja 126 | U+4F46 zh-hans ja zh-hant 127 | U+4F4D-U+4F50 ja 128 | U+4F53 zh-hans ja 129 | U+4F55 zh-hans ja 130 | U+4F59 zh-hans ja zh-hant 131 | U+4F5C ja 132 | U+4F73 zh-hans ja zh-hant 133 | U+4F75 ja 134 | U+4F7F zh-hans ja zh-hant 135 | U+4F8B zh-hans ja zh-hant 136 | U+4F8D ja 137 | U+4F9B zh-hans ja zh-hant 138 | U+4F9D zh-hans ja zh-hant 139 | U+4FA1 ja 140 | U+4FAE-U+4FAF ja 141 | U+4FB5-U+4FB6 ja 142 | U+4FBF zh-hans ja zh-hant 143 | U+4FC2-U+4FC3 ja 144 | U+4FCA zh-hans ja zh-hant 145 | U+4FD7 zh-hans ja zh-hant 146 | U+4FDD zh-hans ja zh-hant 147 | U+4FE1 zh-hans ja 148 | U+4FEE zh-hans ja zh-hant 149 | U+4FF3 ja 150 | U+4FF5 ja 151 | U+4FF8 ja 152 | U+4FFA ja 153 | U+5009 ja 154 | U+500B ja zh-hant 155 | U+500D zh-hans ja zh-hant 156 | U+5012 zh-hans ja 157 | U+5019 ja 158 | U+501F zh-hans ja zh-hant 159 | U+5023-U+5024 ja 160 | U+502B ja zh-hant 161 | U+5039 ja 162 | U+5049 ja zh-hant 163 | U+504F zh-hans ja zh-hant 164 | U+505C zh-hans ja zh-hant 165 | U+5065 zh-hans ja zh-hant 166 | U+5074-U+5076 ja 167 | U+507D ja 168 | U+508D ja 169 | U+5091 ja zh-hant 170 | U+5098-U+5099 ja 171 | U+50AC zh-hans ja 172 | U+50B2 zh-hans ja 173 | U+50B5 ja 174 | U+50B7 ja zh-hant 175 | U+50BE ja zh-hant 176 | U+50C5 ja zh-hant 177 | U+50CD ja 178 | U+50CF zh-hans ja 179 | U+50D5 ja 180 | U+50DA ja 181 | U+50E7 zh-hans ja zh-hant 182 | U+5100 ja zh-hant 183 | U+5104 ja zh-hant 184 | U+5112 zh-hans ja zh-hant 185 | U+511F ja zh-hant 186 | U+512A ja zh-hant 187 | U+5143-U+5146 zh-hans ja 188 | U+5148-U+5149 zh-hans ja 189 | U+514B zh-hans ja zh-hant 190 | U+514D zh-hans ja zh-hant 191 | U+5150 ja 192 | U+515A zh-hans ja 193 | U+5165 zh-hans ja zh-hant 194 | U+5168 zh-hans ja 195 | U+516B-U+516D ja 196 | U+5171 ja zh-hant 197 | U+5175 ja 198 | U+5177-U+5178 ja 199 | U+517C ja zh-hant 200 | U+5185-U+5186 ja 201 | U+518A ja zh-hant 202 | U+518D ja zh-hant 203 | U+5192 zh-hans ja zh-hant 204 | U+5197 ja 205 | U+5199 zh-hans ja 206 | U+51A0 zh-hans ja zh-hant 207 | U+51A5 ja 208 | U+51AC zh-hans ja zh-hant 209 | U+51B6-U+51B7 ja 210 | U+51C4 ja 211 | U+51C6 zh-hans ja zh-hant 212 | U+51CD ja 213 | U+51DD zh-hans ja zh-hant 214 | U+51E1 ja zh-hant 215 | U+51E6 ja 216 | U+51F6 ja 217 | U+51F8-U+51FA ja 218 | U+5200 zh-hans ja zh-hant 219 | U+5203 ja 220 | U+5206-U+5208 ja 221 | U+520A zh-hans ja zh-hant 222 | U+5211 ja 223 | U+5217 ja zh-hant 224 | U+521D zh-hans ja zh-hant 225 | U+5224-U+5225 ja zh-hant 226 | U+5229 zh-hans ja 227 | U+5230 zh-hans ja zh-hant 228 | U+5236-U+523B ja 229 | U+5247 ja zh-hant 230 | U+524A ja 231 | U+524D zh-hans ja 232 | U+5256 ja 233 | U+525B ja zh-hant 234 | U+5263-U+5265 ja 235 | U+526F-U+5270 ja 236 | U+5272 zh-hans ja zh-hant 237 | U+5275 ja zh-hant 238 | U+5287 ja zh-hant 239 | U+529B zh-hans ja zh-hant 240 | U+529F-U+52A0 ja zh-hant 241 | U+52A3 zh-hans ja 242 | U+52A9-U+52AA ja 243 | U+52B1 ja 244 | U+52B4 ja 245 | U+52B9 ja 246 | U+52BE ja 247 | U+52C3 ja 248 | U+52C5 ja 249 | U+52C7 zh-hans ja zh-hant 250 | U+52C9 zh-hans ja zh-hant 251 | U+52D5 ja zh-hant 252 | U+52D8-U+52D9 ja 253 | U+52DD ja 254 | U+52DF ja 255 | U+52E2 ja zh-hant 256 | U+52E4 zh-hans ja zh-hant 257 | U+52E7 ja 258 | U+52F2 ja 259 | U+52FE ja 260 | U+5302 ja 261 | U+5305 ja zh-hant 262 | U+5316-U+5317 zh-hans ja zh-hant 263 | U+5320 ja 264 | U+5339-U+533B zh-hans ja 265 | U+533F ja 266 | U+5341 zh-hans ja 267 | U+5343 zh-hans ja zh-hant 268 | U+5347-U+5348 zh-hans ja zh-hant 269 | U+534A zh-hans ja zh-hant 270 | U+5351-U+5354 ja 271 | U+5357-U+5358 ja 272 | U+535A zh-hans ja zh-hant 273 | U+5360 ja 274 | U+5370-U+5371 ja 275 | U+5373-U+5375 ja 276 | U+5378 ja 277 | U+5384 ja zh-hant 278 | U+5398 ja zh-hant 279 | U+539A zh-hans ja zh-hant 280 | U+539F zh-hans ja zh-hant 281 | U+53B3 ja 282 | U+53BB zh-hans ja zh-hant 283 | U+53C2 zh-hans ja 284 | U+53C8 ja zh-hant 285 | U+53CA-U+53CE ja 286 | U+53D4 zh-hans ja zh-hant 287 | U+53D6-U+53D7 ja zh-hant 288 | U+53D9 ja 289 | U+53E3-U+53E5 ja 290 | U+53EB-U+53EC ja 291 | U+53EF-U+53F3 ja 292 | U+53F7-U+53F8 ja 293 | U+5404 ja 294 | U+5408-U+5409 ja 295 | U+540C-U+5411 ja 296 | U+541B zh-hans ja zh-hant 297 | U+541F zh-hans ja 298 | U+5426 ja 299 | U+542B ja zh-hant 300 | U+5438-U+5439 zh-hans ja zh-hant 301 | U+5442 ja zh-hant 302 | U+5448-U+544A ja 303 | U+5468 zh-hans ja zh-hant 304 | U+546A ja 305 | U+5473 zh-hans ja zh-hant 306 | U+547C-U+547D zh-hans ja zh-hant 307 | U+548C zh-hans ja zh-hant 308 | U+54B2 ja 309 | U+54BD ja 310 | U+54C0-U+54C1 zh-hans ja zh-hant 311 | U+54E1 ja zh-hant 312 | U+54F2 zh-hans ja zh-hant 313 | U+54FA ja 314 | U+5504 ja 315 | U+5506-U+5507 ja 316 | U+5510 zh-hans ja zh-hant 317 | U+552F ja 318 | U+5531 zh-hans ja zh-hant 319 | U+553E ja 320 | U+5546 zh-hans ja zh-hant 321 | U+554F ja zh-hant 322 | U+5553 ja 323 | U+5584 zh-hans ja zh-hant 324 | U+5589 ja 325 | U+559A ja 326 | U+559C-U+559D zh-hans ja zh-hant 327 | U+55A9-U+55AB ja 328 | U+55B6 ja 329 | U+55C5 ja 330 | U+55E3 ja 331 | U+5606 ja zh-hant 332 | U+5631-U+5632 ja 333 | U+5668 zh-hans ja zh-hant 334 | U+5674 ja zh-hant 335 | U+5687 ja zh-hant 336 | U+56DA-U+56DB ja 337 | U+56DE zh-hans ja zh-hant 338 | U+56E0 zh-hans ja zh-hant 339 | U+56E3 ja 340 | U+56F0 zh-hans ja zh-hant 341 | U+56F2-U+56F3 ja 342 | U+56FA zh-hans ja zh-hant 343 | U+56FD ja 344 | U+570F ja 345 | U+5712 ja 346 | U+571F zh-hans ja zh-hant 347 | U+5727-U+5728 ja 348 | U+5730 zh-hans ja zh-hant 349 | U+5742 ja 350 | U+5747 zh-hans ja zh-hant 351 | U+574A ja 352 | U+5751 ja 353 | U+576A zh-hans ja zh-hant 354 | U+5782 ja 355 | U+578B zh-hans ja zh-hant 356 | U+57A3 ja 357 | U+57CB zh-hans ja 358 | U+57CE zh-hans ja zh-hant 359 | U+57DF zh-hans ja zh-hant 360 | U+57F7 ja zh-hant 361 | U+57F9-U+57FA zh-hans ja zh-hant 362 | U+57FC ja 363 | U+5800 ja 364 | U+5802 zh-hans ja zh-hant 365 | U+5805-U+5806 ja zh-hant 366 | U+5815 zh-hans ja 367 | U+5824 ja 368 | U+582A zh-hans ja zh-hant 369 | U+5831 ja zh-hant 370 | U+5834 ja zh-hant 371 | U+5840-U+5841 ja 372 | U+584A ja zh-hant 373 | U+5851 zh-hans ja 374 | U+5854 zh-hans ja zh-hant 375 | U+5857 ja zh-hant 376 | U+585A ja 377 | U+585E zh-hans ja zh-hant 378 | U+5869 ja 379 | U+586B zh-hans ja zh-hant 380 | U+587E ja 381 | U+5883 zh-hans ja zh-hant 382 | U+5893 ja 383 | U+5897 ja 384 | U+589C ja 385 | U+58A8 zh-hans ja zh-hant 386 | U+58B3 ja 387 | U+58BE ja 388 | U+58C1 zh-hans ja zh-hant 389 | U+58C7 ja zh-hant 390 | U+58CA ja 391 | U+58CC ja 392 | U+58EB ja 393 | U+58EE zh-hans ja 394 | U+58F0-U+58F2 ja 395 | U+5909 ja 396 | U+590F zh-hans ja zh-hant 397 | U+5915-U+5916 zh-hans ja zh-hant 398 | U+591A zh-hans ja zh-hant 399 | U+591C zh-hans ja zh-hant 400 | U+5922 ja zh-hant 401 | U+5927 zh-hans ja zh-hant 402 | U+5929-U+592B zh-hans ja zh-hant 403 | U+592E zh-hans ja zh-hant 404 | U+5931 zh-hans ja zh-hant 405 | U+5947-U+5949 zh-hans ja zh-hant 406 | U+594F zh-hans ja 407 | U+5951 zh-hans ja zh-hant 408 | U+5954 zh-hans ja zh-hant 409 | U+5965 zh-hans ja 410 | U+5968 ja 411 | U+596A ja zh-hant 412 | U+596E ja zh-hant 413 | U+5973-U+5974 zh-hans ja zh-hant 414 | U+597D zh-hans ja zh-hant 415 | U+5982-U+5984 ja 416 | U+598A ja 417 | U+5996 zh-hans ja 418 | U+5999 zh-hans ja zh-hant 419 | U+59A5 zh-hans ja zh-hant 420 | U+59A8 zh-hans ja zh-hant 421 | U+59AC ja 422 | U+59B9 zh-hans ja zh-hant 423 | U+59BB zh-hans ja zh-hant 424 | U+59C9 ja 425 | U+59CB ja 426 | U+59D3-U+59D4 zh-hans ja zh-hant 427 | U+59EB ja 428 | U+59FB ja 429 | U+59FF zh-hans ja zh-hant 430 | U+5A01 zh-hans ja zh-hant 431 | U+5A18 zh-hans ja zh-hant 432 | U+5A20 ja 433 | U+5A2F ja 434 | U+5A46 zh-hans ja zh-hant 435 | U+5A5A zh-hans ja zh-hant 436 | U+5A66 ja zh-hant 437 | U+5A7F ja 438 | U+5A92 zh-hans ja zh-hant 439 | U+5A9B ja 440 | U+5AC1 zh-hans ja 441 | U+5AC9 ja 442 | U+5ACC zh-hans ja zh-hant 443 | U+5AE1 ja 444 | U+5B22 ja 445 | U+5B50 zh-hans ja zh-hant 446 | U+5B54 ja zh-hant 447 | U+5B57-U+5B58 ja zh-hant 448 | U+5B5D ja zh-hant 449 | U+5B63-U+5B64 zh-hans ja zh-hant 450 | U+5B66 zh-hans ja 451 | U+5B6B ja zh-hant 452 | U+5B85 ja zh-hant 453 | U+5B87-U+5B89 zh-hans ja zh-hant 454 | U+5B8C ja 455 | U+5B97-U+5B9D ja 456 | U+5B9F ja 457 | U+5BA2-U+5BA4 ja zh-hant 458 | U+5BAE ja zh-hant 459 | U+5BB0 ja 460 | U+5BB3-U+5BB6 ja 461 | U+5BB9 zh-hans ja zh-hant 462 | U+5BBF ja zh-hant 463 | U+5BC2 zh-hans ja zh-hant 464 | U+5BC4 ja 465 | U+5BC6 ja 466 | U+5BCC zh-hans ja zh-hant 467 | U+5BD2 zh-hans ja zh-hant 468 | U+5BDB ja 469 | U+5BDD ja 470 | U+5BDF ja 471 | U+5BE1 zh-hans ja 472 | U+5BE7 ja 473 | U+5BE9 ja 474 | U+5BEE ja zh-hant 475 | U+5BF8 ja 476 | U+5BFA ja 477 | U+5BFE-U+5BFF ja 478 | U+5C01-U+5C02 ja 479 | U+5C04 zh-hans ja zh-hant 480 | U+5C06 zh-hans ja 481 | U+5C09-U+5C0B ja 482 | U+5C0E-U+5C0F ja 483 | U+5C11 zh-hans ja zh-hant 484 | U+5C1A zh-hans ja zh-hant 485 | U+5C31 zh-hans ja zh-hant 486 | U+5C3A-U+5C40 ja 487 | U+5C45 zh-hans ja 488 | U+5C48 ja 489 | U+5C4A-U+5C4B ja 490 | U+5C55 zh-hans ja zh-hant 491 | U+5C5E zh-hans ja 492 | U+5C64-U+5C65 ja 493 | U+5C6F ja 494 | U+5C71 zh-hans ja zh-hant 495 | U+5C90 ja 496 | U+5CA1 ja zh-hant 497 | U+5CA9 ja zh-hant 498 | U+5CAC ja 499 | U+5CB3 zh-hans ja 500 | U+5CB8 zh-hans ja zh-hant 501 | U+5CE0-U+5CE1 ja 502 | U+5CF0 zh-hans ja zh-hant 503 | U+5CF6 ja zh-hant 504 | U+5D07 zh-hans ja zh-hant 505 | U+5D0E ja 506 | U+5D16 ja 507 | U+5D29 zh-hans ja 508 | U+5D50 ja zh-hant 509 | U+5DDD-U+5DDE zh-hans ja zh-hant 510 | U+5DE1 zh-hans ja zh-hant 511 | U+5DE3 ja 512 | U+5DE5-U+5DE8 zh-hans ja zh-hant 513 | U+5DEE zh-hans ja zh-hant 514 | U+5DF1 ja 515 | U+5DFB ja 516 | U+5DFE ja 517 | U+5E02-U+5E03 ja zh-hant 518 | U+5E06 ja 519 | U+5E0C zh-hans ja zh-hant 520 | U+5E1D zh-hans ja zh-hant 521 | U+5E25 ja zh-hant 522 | U+5E2B ja zh-hant 523 | U+5E2D ja zh-hant 524 | U+5E2F-U+5E30 ja 525 | U+5E33 ja zh-hant 526 | U+5E38 zh-hans ja zh-hant 527 | U+5E3D zh-hans ja zh-hant 528 | U+5E45 zh-hans ja zh-hant 529 | U+5E55 zh-hans ja zh-hant 530 | U+5E63 ja zh-hant 531 | U+5E72-U+5E74 zh-hans ja zh-hant 532 | U+5E78-U+5E79 ja zh-hant 533 | U+5E7B-U+5E7E ja zh-hant 534 | U+5E81 ja 535 | U+5E83 ja 536 | U+5E8A zh-hans ja zh-hant 537 | U+5E8F zh-hans ja zh-hant 538 | U+5E95 ja zh-hant 539 | U+5E97 zh-hans ja zh-hant 540 | U+5E9C zh-hans ja zh-hant 541 | U+5EA6-U+5EA7 zh-hans ja zh-hant 542 | U+5EAB ja zh-hant 543 | U+5EAD zh-hans ja zh-hant 544 | U+5EB6-U+5EB8 ja 545 | U+5EC3 ja 546 | U+5EC9-U+5ECA ja 547 | U+5EF6-U+5EF7 zh-hans ja zh-hant 548 | U+5EFA zh-hans ja zh-hant 549 | U+5F01 ja 550 | U+5F04 ja zh-hant 551 | U+5F0A zh-hans ja 552 | U+5F0F-U+5F10 ja 553 | U+5F13-U+5F15 ja 554 | U+5F1F ja zh-hant 555 | U+5F25-U+5F27 ja 556 | U+5F31 zh-hans ja zh-hant 557 | U+5F35 ja zh-hant 558 | U+5F37 ja zh-hant 559 | U+5F3E ja 560 | U+5F53 ja 561 | U+5F59 ja 562 | U+5F62 zh-hans ja zh-hant 563 | U+5F69 zh-hans ja zh-hant 564 | U+5F6B ja 565 | U+5F70-U+5F71 zh-hans ja zh-hant 566 | U+5F79 zh-hans ja zh-hant 567 | U+5F7C ja zh-hant 568 | U+5F80-U+5F81 zh-hans ja zh-hant 569 | U+5F84-U+5F85 zh-hans ja 570 | U+5F8B-U+5F8C zh-hans ja zh-hant 571 | U+5F90 zh-hans ja 572 | U+5F92-U+5F93 ja 573 | U+5F97 zh-hans ja zh-hant 574 | U+5FA1 ja 575 | U+5FA9-U+5FAA ja 576 | U+5FAE zh-hans ja zh-hant 577 | U+5FB3-U+5FB4 ja 578 | U+5FB9 ja zh-hant 579 | U+5FC3 zh-hans ja zh-hant 580 | U+5FC5 ja zh-hant 581 | U+5FCC-U+5FCD zh-hans ja zh-hant 582 | U+5FD7-U+5FD9 zh-hans ja zh-hant 583 | U+5FDC ja 584 | U+5FE0 zh-hans ja zh-hant 585 | U+5FEB zh-hans ja zh-hant 586 | U+5FF5 zh-hans ja zh-hant 587 | U+6012 zh-hans ja zh-hant 588 | U+6016 ja 589 | U+601D zh-hans ja zh-hant 590 | U+6020 ja 591 | U+6025 zh-hans ja zh-hant 592 | U+6027-U+6028 zh-hans ja zh-hant 593 | U+602A zh-hans ja zh-hant 594 | U+604B zh-hans ja 595 | U+6050 zh-hans ja zh-hant 596 | U+6052 ja 597 | U+6063 ja 598 | U+6065 ja zh-hant 599 | U+6068-U+6069 zh-hans ja zh-hant 600 | U+606D zh-hans ja zh-hant 601 | U+606F ja 602 | U+6075 ja 603 | U+6094 zh-hans ja zh-hant 604 | U+609F-U+60A0 zh-hans ja zh-hant 605 | U+60A3 zh-hans ja 606 | U+60A6 ja 607 | U+60A9-U+60AA ja 608 | U+60B2 zh-hans ja zh-hant 609 | U+60BC ja 610 | U+60C5 zh-hans ja zh-hant 611 | U+60D1 zh-hans ja zh-hant 612 | U+60DC zh-hans ja zh-hant 613 | U+60E7-U+60E8 zh-hans ja 614 | U+60F0 ja 615 | U+60F3 zh-hans ja zh-hant 616 | U+6101 zh-hans ja zh-hant 617 | U+6109 ja 618 | U+610F zh-hans ja zh-hant 619 | U+611A-U+611B ja zh-hant 620 | U+611F zh-hans ja zh-hant 621 | U+6144 ja 622 | U+6148 zh-hans ja zh-hant 623 | U+614B-U+614C ja 624 | U+614E zh-hans ja 625 | U+6155 zh-hans ja zh-hant 626 | U+6162-U+6163 ja zh-hant 627 | U+6168 ja 628 | U+616E ja zh-hant 629 | U+6170 zh-hans ja zh-hant 630 | U+6176 ja zh-hant 631 | U+6182 ja zh-hant 632 | U+618E ja 633 | U+61A4 ja 634 | U+61A7 ja 635 | U+61A9 ja 636 | U+61AC ja 637 | U+61B2 ja zh-hant 638 | U+61B6 ja zh-hant 639 | U+61BE zh-hans ja zh-hant 640 | U+61C7 ja 641 | U+61D0 ja 642 | U+61F2 ja 643 | U+61F8 ja 644 | U+6210-U+6212 ja zh-hant 645 | U+621A ja 646 | U+6226 ja 647 | U+622F ja 648 | U+6234 zh-hans ja zh-hant 649 | U+6238 ja 650 | U+623B ja 651 | U+623F-U+6240 ja 652 | U+6247 zh-hans ja zh-hant 653 | U+6249 ja 654 | U+624B zh-hans ja zh-hant 655 | U+624D ja 656 | U+6253 zh-hans ja zh-hant 657 | U+6255 ja 658 | U+6271 ja 659 | U+6276 ja 660 | U+6279 zh-hans ja zh-hant 661 | U+627F-U+6280 ja 662 | U+6284 zh-hans ja zh-hant 663 | U+628A zh-hans ja zh-hant 664 | U+6291 zh-hans ja 665 | U+6295 zh-hans ja zh-hant 666 | U+6297-U+6298 zh-hans ja zh-hant 667 | U+629C ja 668 | U+629E ja 669 | U+62AB ja 670 | U+62B1 zh-hans ja zh-hant 671 | U+62B5 zh-hans ja zh-hant 672 | U+62B9 zh-hans ja zh-hant 673 | U+62BC-U+62BD ja 674 | U+62C5 ja 675 | U+62C9 zh-hans ja zh-hant 676 | U+62CD zh-hans ja zh-hant 677 | U+62D0 ja 678 | U+62D2-U+62D3 ja 679 | U+62D8-U+62D9 ja 680 | U+62DB ja 681 | U+62DD ja 682 | U+62E0-U+62E1 ja 683 | U+62EC-U+62ED ja 684 | U+62F3 zh-hans ja zh-hant 685 | U+62F6-U+62F7 ja 686 | U+62FE ja 687 | U+6301 zh-hans ja zh-hant 688 | U+6307 zh-hans ja zh-hant 689 | U+6311 zh-hans ja zh-hant 690 | U+6319 ja 691 | U+631F ja 692 | U+6328 ja 693 | U+632B ja 694 | U+632F zh-hans ja zh-hant 695 | U+633F ja 696 | U+6349 zh-hans ja 697 | U+6355 zh-hans ja zh-hant 698 | U+6357 ja 699 | U+635C ja 700 | U+6368 ja zh-hant 701 | U+636E zh-hans ja 702 | U+637B ja 703 | U+6383 ja zh-hant 704 | U+6388 ja 705 | U+638C zh-hans ja zh-hant 706 | U+6392 zh-hans ja zh-hant 707 | U+6398 ja 708 | U+639B ja zh-hant 709 | U+63A1-U+63A2 ja zh-hant 710 | U+63A5 zh-hans ja zh-hant 711 | U+63A7-U+63A8 ja zh-hant 712 | U+63AA ja zh-hant 713 | U+63B2 ja 714 | U+63CF-U+63D0 zh-hans ja zh-hant 715 | U+63DA-U+63DB ja zh-hant 716 | U+63E1 zh-hans ja zh-hant 717 | U+63EE ja zh-hant 718 | U+63F4 zh-hans ja zh-hant 719 | U+63FA ja 720 | U+640D ja zh-hant 721 | U+642C-U+642D zh-hans ja zh-hant 722 | U+643A ja 723 | U+643E ja 724 | U+6442 ja 725 | U+6458 zh-hans ja zh-hant 726 | U+6469 zh-hans ja zh-hant 727 | U+646F ja 728 | U+6483 ja 729 | U+64A4 ja 730 | U+64AE ja 731 | U+64B2 ja 732 | U+64C1 ja zh-hant 733 | U+64CD ja 734 | U+64E6 zh-hans ja zh-hant 735 | U+64EC ja zh-hant 736 | U+652F zh-hans ja zh-hant 737 | U+6539 zh-hans ja zh-hant 738 | U+653B zh-hans ja zh-hant 739 | U+653E-U+653F zh-hans ja zh-hant 740 | U+6545 zh-hans ja zh-hant 741 | U+654F zh-hans ja zh-hant 742 | U+6551 zh-hans ja zh-hant 743 | U+6557 ja 744 | U+6559 zh-hans ja 745 | U+6562-U+6563 zh-hans ja zh-hant 746 | U+656C zh-hans ja zh-hant 747 | U+6570 zh-hans ja 748 | U+6574-U+6575 ja zh-hant 749 | U+6577 ja 750 | U+6587 zh-hans ja zh-hant 751 | U+6589 ja 752 | U+658E ja 753 | U+6591 ja 754 | U+6597 zh-hans ja zh-hant 755 | U+6599 zh-hans ja zh-hant 756 | U+659C zh-hans ja 757 | U+65A4-U+65A5 ja 758 | U+65AC-U+65AD ja 759 | U+65B0 ja 760 | U+65B9 zh-hans ja zh-hant 761 | U+65BD ja 762 | U+65C5 zh-hans ja zh-hant 763 | U+65CB zh-hans ja zh-hant 764 | U+65CF zh-hans ja zh-hant 765 | U+65D7 zh-hans ja zh-hant 766 | U+65E2 zh-hans ja zh-hant 767 | U+65E5-U+65E9 zh-hans ja 768 | U+65EC ja 769 | U+65FA zh-hans ja zh-hant 770 | U+6606-U+6607 ja zh-hant 771 | U+660E ja 772 | U+6613-U+6614 ja 773 | U+661F-U+6620 zh-hans ja zh-hant 774 | U+6625 zh-hans ja zh-hant 775 | U+6627-U+6628 ja 776 | U+662D zh-hans ja zh-hant 777 | U+662F zh-hans ja zh-hant 778 | U+663C ja 779 | U+6642 ja zh-hant 780 | U+6669 ja 781 | U+666E-U+666F zh-hans ja zh-hant 782 | U+6674 zh-hans ja zh-hant 783 | U+6676 zh-hans ja zh-hant 784 | U+6681 ja 785 | U+6687 ja 786 | U+6691 zh-hans ja zh-hant 787 | U+6696-U+6697 zh-hans ja zh-hant 788 | U+66A6 ja 789 | U+66AB ja zh-hant 790 | U+66AE zh-hans ja 791 | U+66B4 zh-hans ja zh-hant 792 | U+66C7 ja 793 | U+66D6 ja 794 | U+66DC ja 795 | U+66F2 zh-hans ja zh-hant 796 | U+66F4 zh-hans ja zh-hant 797 | U+66F8-U+66F9 ja 798 | U+66FD ja 799 | U+66FF-U+6700 ja 800 | U+6708-U+6709 zh-hans ja zh-hant 801 | U+670D zh-hans ja zh-hant 802 | U+6715 ja 803 | U+6717 zh-hans ja zh-hant 804 | U+671B zh-hans ja zh-hant 805 | U+671D zh-hans ja zh-hant 806 | U+671F zh-hans ja zh-hant 807 | U+6728 zh-hans ja zh-hant 808 | U+672A-U+672D zh-hans ja zh-hant 809 | U+6731 zh-hans ja zh-hant 810 | U+6734 ja 811 | U+673A zh-hans ja 812 | U+673D ja 813 | U+6749 zh-hans ja zh-hant 814 | U+6750-U+6751 zh-hans ja zh-hant 815 | U+675F zh-hans ja zh-hant 816 | U+6761 zh-hans ja 817 | U+6765 zh-hans ja 818 | U+676F ja 819 | U+6771 ja 820 | U+677E-U+677F zh-hans ja zh-hant 821 | U+6790 zh-hans ja zh-hant 822 | U+6795 ja 823 | U+6797 zh-hans ja zh-hant 824 | U+679A ja 825 | U+679C-U+679D zh-hans ja zh-hant 826 | U+67A0 ja 827 | U+67A2 zh-hans ja 828 | U+67AF ja 829 | U+67B6 zh-hans ja zh-hant 830 | U+67C4 ja 831 | U+67D0 ja 832 | U+67D3-U+67D4 zh-hans ja zh-hant 833 | U+67F1 ja 834 | U+67F3 ja 835 | U+67F5 ja 836 | U+67FB ja 837 | U+67FF ja 838 | U+6803-U+6804 ja 839 | U+6813 ja 840 | U+6821 zh-hans ja zh-hant 841 | U+682A ja 842 | U+6838-U+6839 ja zh-hant 843 | U+683C-U+683D ja 844 | U+6841 ja 845 | U+6843 zh-hans ja zh-hant 846 | U+6848 zh-hans ja zh-hant 847 | U+6851 zh-hans ja zh-hant 848 | U+685C ja 849 | U+685F ja 850 | U+6885 zh-hans ja zh-hant 851 | U+6897 ja 852 | U+68A8 ja zh-hant 853 | U+68B0 ja 854 | U+68C4 ja zh-hant 855 | U+68CB zh-hans ja zh-hant 856 | U+68D2 zh-hans ja zh-hant 857 | U+68DA zh-hans ja zh-hant 858 | U+68DF ja 859 | U+68EE zh-hans ja zh-hant 860 | U+68FA ja 861 | U+6905 zh-hans ja zh-hant 862 | U+690D-U+690E ja 863 | U+691C ja 864 | U+696D ja zh-hant 865 | U+6975 ja zh-hant 866 | U+6977 ja 867 | U+697C-U+697D ja 868 | U+6982 zh-hans ja zh-hant 869 | U+69CB ja zh-hant 870 | U+69D8 ja 871 | U+69FD ja 872 | U+6A19 ja zh-hant 873 | U+6A21 zh-hans ja zh-hant 874 | U+6A29-U+6A2A ja 875 | U+6A39 ja zh-hant 876 | U+6A4B ja zh-hant 877 | U+6A5F ja zh-hant 878 | U+6B04 ja zh-hant 879 | U+6B20-U+6B21 ja 880 | U+6B27 zh-hans ja 881 | U+6B32 zh-hans ja zh-hant 882 | U+6B3A zh-hans ja zh-hant 883 | U+6B3E zh-hans ja 884 | U+6B4C zh-hans ja zh-hant 885 | U+6B53 ja 886 | U+6B62-U+6B63 ja 887 | U+6B66 ja 888 | U+6B69 ja 889 | U+6B6F ja 890 | U+6B73-U+6B74 ja 891 | U+6B7B zh-hans ja zh-hant 892 | U+6B89-U+6B8B ja 893 | U+6B96 ja 894 | U+6BB4-U+6BB5 ja 895 | U+6BBA-U+6BBB ja 896 | U+6BBF-U+6BC0 ja 897 | U+6BCD-U+6BCE ja 898 | U+6BD2 zh-hans ja zh-hant 899 | U+6BD4 ja zh-hant 900 | U+6BDB zh-hans ja zh-hant 901 | U+6C0F zh-hans ja zh-hant 902 | U+6C11 zh-hans ja zh-hant 903 | U+6C17 ja 904 | U+6C34 zh-hans ja zh-hant 905 | U+6C37-U+6C38 ja 906 | U+6C3E ja 907 | U+6C41-U+6C42 ja 908 | U+6C4E ja 909 | U+6C57 zh-hans ja zh-hant 910 | U+6C5A ja 911 | U+6C5F-U+6C60 ja 912 | U+6C70 ja 913 | U+6C7A ja zh-hant 914 | U+6C7D zh-hans ja zh-hant 915 | U+6C83 zh-hans ja zh-hant 916 | U+6C88 ja 917 | U+6C96 ja zh-hant 918 | U+6C99 zh-hans ja zh-hant 919 | U+6CA1-U+6CA2 ja 920 | U+6CB3 zh-hans ja zh-hant 921 | U+6CB8-U+6CB9 ja 922 | U+6CBB-U+6CBC ja 923 | U+6CBF zh-hans ja zh-hant 924 | U+6CC1 ja zh-hant 925 | U+6CC9-U+6CCA zh-hans ja zh-hant 926 | U+6CCC ja 927 | U+6CD5 zh-hans ja zh-hant 928 | U+6CE1-U+6CE3 zh-hans ja 929 | U+6CE5 zh-hans ja zh-hant 930 | U+6CE8 zh-hans ja zh-hant 931 | U+6CF0 zh-hans ja zh-hant 932 | U+6CF3 zh-hans ja zh-hant 933 | U+6D0B zh-hans ja zh-hant 934 | U+6D17 zh-hans ja zh-hant 935 | U+6D1E zh-hans ja zh-hant 936 | U+6D25 zh-hans ja 937 | U+6D2A zh-hans ja 938 | U+6D3B zh-hans ja zh-hant 939 | U+6D3E ja 940 | U+6D41 zh-hans ja zh-hant 941 | U+6D44-U+6D45 ja 942 | U+6D5C ja 943 | U+6D66 zh-hans ja zh-hant 944 | U+6D6A ja 945 | U+6D6E zh-hans ja zh-hant 946 | U+6D74 zh-hans ja 947 | U+6D77-U+6D78 ja 948 | U+6D88 ja 949 | U+6D99 ja 950 | U+6DAF zh-hans ja zh-hant 951 | U+6DB2 zh-hans ja zh-hant 952 | U+6DBC ja zh-hant 953 | U+6DD1 zh-hans ja zh-hant 954 | U+6DE1 zh-hans ja zh-hant 955 | U+6DEB ja 956 | U+6DF1 zh-hans ja zh-hant 957 | U+6DF7 zh-hans ja zh-hant 958 | U+6DFB zh-hans ja 959 | U+6E05 zh-hans ja zh-hant 960 | U+6E07-U+6E09 ja 961 | U+6E0B ja 962 | U+6E13 ja 963 | U+6E1B ja zh-hant 964 | U+6E21 zh-hans ja zh-hant 965 | U+6E26 ja 966 | U+6E29 zh-hans ja 967 | U+6E2C ja zh-hant 968 | U+6E2F zh-hans ja zh-hant 969 | U+6E56 zh-hans ja zh-hant 970 | U+6E67 ja 971 | U+6E6F ja zh-hant 972 | U+6E7E-U+6E80 ja 973 | U+6E90 zh-hans ja zh-hant 974 | U+6E96 ja zh-hant 975 | U+6E9D ja zh-hant 976 | U+6EB6 ja 977 | U+6EBA ja 978 | U+6EC5 ja 979 | U+6ECB zh-hans ja zh-hant 980 | U+6ED1 zh-hans ja zh-hant 981 | U+6EDD-U+6EDE ja 982 | U+6EF4 zh-hans ja zh-hant 983 | U+6F01-U+6F02 ja 984 | U+6F06 ja 985 | U+6F0F zh-hans ja zh-hant 986 | U+6F14 zh-hans ja zh-hant 987 | U+6F20 zh-hans ja zh-hant 988 | U+6F22 ja zh-hant 989 | U+6F2B-U+6F2C ja 990 | U+6F38 ja zh-hant 991 | U+6F54 ja zh-hant 992 | U+6F5C zh-hans ja 993 | U+6F5F ja 994 | U+6F64 ja 995 | U+6F6E zh-hans ja zh-hant 996 | U+6F70 ja 997 | U+6F84 ja 998 | U+6FC0-U+6FC1 ja 999 | U+6FC3 ja zh-hant 1000 | U+6FEB ja zh-hant 1001 | U+6FEF ja 1002 | U+702C ja 1003 | U+706B zh-hans ja zh-hant 1004 | U+706F-U+7070 zh-hans ja 1005 | U+707D ja zh-hant 1006 | U+7089-U+708A ja 1007 | U+708E zh-hans ja zh-hant 1008 | U+70AD ja 1009 | U+70B9-U+70BA ja 1010 | U+70C8 zh-hans ja zh-hant 1011 | U+7121 ja zh-hant 1012 | U+7126 zh-hans ja zh-hant 1013 | U+7136 zh-hans ja zh-hant 1014 | U+713C ja 1015 | U+714E ja 1016 | U+7159 ja zh-hant 1017 | U+7167 zh-hans ja zh-hant 1018 | U+7169 ja zh-hant 1019 | U+716E zh-hans ja 1020 | U+718A zh-hans ja zh-hant 1021 | U+719F zh-hans ja zh-hant 1022 | U+71B1 ja zh-hant 1023 | U+71C3 zh-hans ja zh-hant 1024 | U+71E5 ja 1025 | U+7206 zh-hans ja zh-hant 1026 | U+722A zh-hans ja zh-hant 1027 | U+7235-U+7236 ja zh-hant 1028 | U+723D zh-hans ja 1029 | U+7247-U+7248 zh-hans ja 1030 | U+7259 zh-hans ja zh-hant 1031 | U+725B zh-hans ja zh-hant 1032 | U+7267 zh-hans ja zh-hant 1033 | U+7269 zh-hans ja zh-hant 1034 | U+7272 zh-hans ja zh-hant 1035 | U+7279 ja zh-hant 1036 | U+72A0 ja 1037 | U+72AC ja 1038 | U+72AF zh-hans ja zh-hant 1039 | U+72B6 zh-hans ja 1040 | U+72C2 zh-hans ja zh-hant 1041 | U+72D9 ja 1042 | U+72E9 ja 1043 | U+72EC-U+72ED ja 1044 | U+731B ja 1045 | U+731F ja 1046 | U+732B ja 1047 | U+732E zh-hans ja 1048 | U+7336 ja zh-hant 1049 | U+733F ja 1050 | U+7344 ja 1051 | U+7363 ja 1052 | U+7372 ja zh-hant 1053 | U+7384 zh-hans ja zh-hant 1054 | U+7387 zh-hans ja zh-hant 1055 | U+7389 zh-hans ja zh-hant 1056 | U+738B zh-hans ja zh-hant 1057 | U+73A9 zh-hans ja zh-hant 1058 | U+73CD zh-hans ja zh-hant 1059 | U+73E0 zh-hans ja zh-hant 1060 | U+73ED zh-hans ja zh-hant 1061 | U+73FE ja zh-hant 1062 | U+7403 zh-hans ja zh-hant 1063 | U+7406 zh-hans ja zh-hant 1064 | U+7434 ja zh-hant 1065 | U+7460 ja 1066 | U+7483 zh-hans ja 1067 | U+74A7 ja 1068 | U+74B0 ja zh-hant 1069 | U+74BD ja 1070 | U+74E6 zh-hans ja zh-hant 1071 | U+74F6 zh-hans ja zh-hant 1072 | U+7518 zh-hans ja zh-hant 1073 | U+751A zh-hans ja zh-hant 1074 | U+751F zh-hans ja zh-hant 1075 | U+7523 ja 1076 | U+7528 zh-hans ja zh-hant 1077 | U+7530-U+7533 zh-hans ja zh-hant 1078 | U+7537 ja 1079 | U+753A-U+753B ja 1080 | U+754C zh-hans ja zh-hant 1081 | U+754F ja 1082 | U+7551 ja 1083 | U+7554 ja 1084 | U+7559 zh-hans ja zh-hant 1085 | U+755C-U+755D ja 1086 | U+7565 zh-hans ja zh-hant 1087 | U+756A zh-hans ja 1088 | U+7570 ja zh-hant 1089 | U+7573 ja 1090 | U+757F ja 1091 | U+758E ja 1092 | U+7591 zh-hans ja zh-hant 1093 | U+75AB ja 1094 | U+75B2 zh-hans ja 1095 | U+75BE zh-hans ja 1096 | U+75C5 zh-hans ja zh-hant 1097 | U+75C7 ja 1098 | U+75D5 zh-hans ja zh-hant 1099 | U+75D8 ja 1100 | U+75DB zh-hans ja zh-hant 1101 | U+75E2 ja 1102 | U+75E9 ja 1103 | U+75F4 zh-hans ja zh-hant 1104 | U+760D ja 1105 | U+7642 ja zh-hant 1106 | U+7652 ja 1107 | U+7656 ja 1108 | U+767A-U+767B ja 1109 | U+767D-U+767E zh-hans ja 1110 | U+7684 zh-hans ja zh-hant 1111 | U+7686-U+7687 zh-hans ja zh-hant 1112 | U+76AE zh-hans ja zh-hant 1113 | U+76BF ja 1114 | U+76C6 ja 1115 | U+76CA zh-hans ja zh-hant 1116 | U+76D7 ja 1117 | U+76DB zh-hans ja 1118 | U+76DF zh-hans ja zh-hant 1119 | U+76E3-U+76E4 ja zh-hant 1120 | U+76EE zh-hans ja zh-hant 1121 | U+76F2 ja zh-hant 1122 | U+76F4 zh-hans ja zh-hant 1123 | U+76F8 zh-hans ja zh-hant 1124 | U+76FE zh-hans ja zh-hant 1125 | U+7701 zh-hans ja zh-hant 1126 | U+7709 zh-hans ja zh-hant 1127 | U+770B-U+770C ja 1128 | U+771F-U+7720 zh-hans ja zh-hant 1129 | U+773A ja 1130 | U+773C zh-hans ja zh-hant 1131 | U+7740 zh-hans ja 1132 | U+7761 zh-hans ja zh-hant 1133 | U+7763 zh-hans ja zh-hant 1134 | U+7766 ja 1135 | U+77AC-U+77AD ja 1136 | U+77B3 ja 1137 | U+77DB zh-hans ja zh-hant 1138 | U+77E2 ja 1139 | U+77E5 zh-hans ja zh-hant 1140 | U+77ED zh-hans ja zh-hant 1141 | U+77EF ja 1142 | U+77F3 zh-hans ja zh-hant 1143 | U+7802 ja zh-hant 1144 | U+7814-U+7815 ja 1145 | U+7832 ja zh-hant 1146 | U+7834 zh-hans ja zh-hant 1147 | U+785D ja 1148 | U+786B-U+786C ja 1149 | U+7881 ja 1150 | U+7891 ja 1151 | U+78BA ja zh-hant 1152 | U+78C1 zh-hans ja zh-hant 1153 | U+78E8 zh-hans ja zh-hant 1154 | U+7901 ja 1155 | U+790E ja zh-hant 1156 | U+793A zh-hans ja zh-hant 1157 | U+793C zh-hans ja 1158 | U+793E zh-hans ja zh-hant 1159 | U+7948-U+7949 ja 1160 | U+7956 zh-hans ja 1161 | U+795D-U+795E zh-hans ja zh-hant 1162 | U+7965 zh-hans ja zh-hant 1163 | U+7968 zh-hans ja zh-hant 1164 | U+796D ja 1165 | U+7981 zh-hans ja zh-hant 1166 | U+7985 zh-hans ja 1167 | U+798D ja 1168 | U+798F zh-hans ja 1169 | U+79C0-U+79C1 zh-hans ja zh-hant 1170 | U+79CB zh-hans ja zh-hant 1171 | U+79D1-U+79D2 zh-hans ja zh-hant 1172 | U+79D8 zh-hans ja zh-hant 1173 | U+79DF zh-hans ja zh-hant 1174 | U+79E9 zh-hans ja 1175 | U+79F0 ja 1176 | U+79FB zh-hans ja zh-hant 1177 | U+7A0B zh-hans ja zh-hant 1178 | U+7A0E ja 1179 | U+7A1A ja 1180 | U+7A2E ja zh-hant 1181 | U+7A32 ja 1182 | U+7A3C-U+7A3D ja 1183 | U+7A3F-U+7A40 ja 1184 | U+7A42 ja 1185 | U+7A4D ja 1186 | U+7A4F ja 1187 | U+7A6B ja 1188 | U+7A74 ja 1189 | U+7A76 ja zh-hant 1190 | U+7A7A ja 1191 | U+7A81 zh-hans ja zh-hant 1192 | U+7A83 ja 1193 | U+7A92-U+7A93 ja 1194 | U+7A9F ja 1195 | U+7AAE-U+7AAF ja 1196 | U+7ACB zh-hans ja zh-hant 1197 | U+7ADC ja 1198 | U+7AE0 ja 1199 | U+7AE5 zh-hans ja zh-hant 1200 | U+7AEF zh-hans ja zh-hant 1201 | U+7AF6 ja zh-hant 1202 | U+7AF9 zh-hans ja zh-hant 1203 | U+7B11 zh-hans ja zh-hant 1204 | U+7B1B zh-hans ja zh-hant 1205 | U+7B26 zh-hans ja zh-hant 1206 | U+7B2C zh-hans ja zh-hant 1207 | U+7B46 ja zh-hant 1208 | U+7B49 zh-hans ja zh-hant 1209 | U+7B4B zh-hans ja zh-hant 1210 | U+7B52 ja 1211 | U+7B54 zh-hans ja zh-hant 1212 | U+7B56 zh-hans ja zh-hant 1213 | U+7B87 ja 1214 | U+7B8B ja 1215 | U+7B97 zh-hans ja zh-hant 1216 | U+7BA1 zh-hans ja zh-hant 1217 | U+7BB1 zh-hans ja zh-hant 1218 | U+7BB8 ja 1219 | U+7BC0 ja zh-hant 1220 | U+7BC4 ja zh-hant 1221 | U+7BC9 ja zh-hant 1222 | U+7BE4 ja 1223 | U+7C21 ja zh-hant 1224 | U+7C3F zh-hans ja zh-hant 1225 | U+7C4D zh-hans ja 1226 | U+7C60 ja 1227 | U+7C73 zh-hans ja zh-hant 1228 | U+7C89 zh-hans ja zh-hant 1229 | U+7C8B ja 1230 | U+7C92 zh-hans ja 1231 | U+7C97-U+7C98 ja 1232 | U+7C9B ja 1233 | U+7CA7 ja 1234 | U+7CBE zh-hans ja zh-hant 1235 | U+7CD6 ja 1236 | U+7CE7 ja 1237 | U+7CF8 ja 1238 | U+7CFB zh-hans ja zh-hant 1239 | U+7CFE ja zh-hant 1240 | U+7D00 ja zh-hant 1241 | U+7D04-U+7D05 ja zh-hant 1242 | U+7D0B ja 1243 | U+7D0D ja zh-hant 1244 | U+7D14 ja zh-hant 1245 | U+7D19-U+7D1B ja zh-hant 1246 | U+7D20-U+7D22 ja 1247 | U+7D2B zh-hans ja zh-hant 1248 | U+7D2F-U+7D30 ja zh-hant 1249 | U+7D33 ja 1250 | U+7D39-U+7D3A ja 1251 | U+7D42 ja zh-hant 1252 | U+7D44 ja zh-hant 1253 | U+7D4C ja 1254 | U+7D50 ja zh-hant 1255 | U+7D5E ja 1256 | U+7D61 ja zh-hant 1257 | U+7D66 ja zh-hant 1258 | U+7D71 ja 1259 | U+7D75-U+7D76 ja 1260 | U+7D79 ja 1261 | U+7D99-U+7D9A ja 1262 | U+7DAD ja zh-hant 1263 | U+7DB1-U+7DB2 ja zh-hant 1264 | U+7DBB ja 1265 | U+7DBF ja 1266 | U+7DCA ja zh-hant 1267 | U+7DCF ja 1268 | U+7DD1-U+7DD2 ja 1269 | U+7DDA ja zh-hant 1270 | U+7DE0 ja 1271 | U+7DE8-U+7DE9 ja zh-hant 1272 | U+7DEF ja zh-hant 1273 | U+7DF4 ja zh-hant 1274 | U+7DFB ja 1275 | U+7E01 ja 1276 | U+7E04 ja 1277 | U+7E1B ja zh-hant 1278 | U+7E26 ja 1279 | U+7E2B ja 1280 | U+7E2E ja zh-hant 1281 | U+7E3E ja 1282 | U+7E41 zh-hans ja zh-hant 1283 | U+7E4A ja 1284 | U+7E54-U+7E55 ja 1285 | U+7E6D ja 1286 | U+7E70 ja 1287 | U+7F36 zh-hans ja 1288 | U+7F6A zh-hans ja zh-hant 1289 | U+7F6E zh-hans ja zh-hant 1290 | U+7F70 ja zh-hant 1291 | U+7F72 zh-hans ja zh-hant 1292 | U+7F75 ja zh-hant 1293 | U+7F77 ja zh-hant 1294 | U+7F85 ja zh-hant 1295 | U+7F8A zh-hans ja zh-hant 1296 | U+7F8E zh-hans ja zh-hant 1297 | U+7F9E zh-hans ja zh-hant 1298 | U+7FA4 zh-hans ja zh-hant 1299 | U+7FA8-U+7FA9 ja 1300 | U+7FBD zh-hans ja zh-hant 1301 | U+7FC1 zh-hans ja zh-hant 1302 | U+7FCC ja 1303 | U+7FD2 ja zh-hant 1304 | U+7FFB-U+7FFC zh-hans ja zh-hant 1305 | U+8001 ja 1306 | U+8003 zh-hans ja zh-hant 1307 | U+8005 zh-hans ja zh-hant 1308 | U+8010 zh-hans ja zh-hant 1309 | U+8015 ja 1310 | U+8017 zh-hans ja zh-hant 1311 | U+8033 zh-hans ja zh-hant 1312 | U+8056 ja zh-hant 1313 | U+805E ja zh-hant 1314 | U+8074 ja 1315 | U+8077 ja zh-hant 1316 | U+8089 zh-hans ja zh-hant 1317 | U+808C ja 1318 | U+8096 zh-hans ja 1319 | U+8098 ja 1320 | U+809D ja 1321 | U+80A1-U+80A2 ja 1322 | U+80A5 ja zh-hant 1323 | U+80A9-U+80AA ja 1324 | U+80AF zh-hans ja zh-hant 1325 | U+80B2 zh-hans ja zh-hant 1326 | U+80BA ja 1327 | U+80C3 ja 1328 | U+80C6 zh-hans ja 1329 | U+80CC zh-hans ja zh-hant 1330 | U+80CE zh-hans ja zh-hant 1331 | U+80DE zh-hans ja zh-hant 1332 | U+80F4 ja 1333 | U+80F8 zh-hans ja zh-hant 1334 | U+80FD zh-hans ja zh-hant 1335 | U+8102 ja 1336 | U+8105 ja 1337 | U+8107-U+8108 ja 1338 | U+810A ja 1339 | U+811A ja 1340 | U+8131 zh-hans ja 1341 | U+8133 ja 1342 | U+814E ja 1343 | U+8150 zh-hans ja 1344 | U+8155 ja 1345 | U+816B ja 1346 | U+8170 zh-hans ja zh-hant 1347 | U+8178-U+817A ja 1348 | U+819A ja 1349 | U+819C-U+819D ja 1350 | U+81A8 ja 1351 | U+81B3 ja 1352 | U+81C6 ja 1353 | U+81D3 ja 1354 | U+81E3 zh-hans ja zh-hant 1355 | U+81E8 ja zh-hant 1356 | U+81EA zh-hans ja zh-hant 1357 | U+81ED zh-hans ja zh-hant 1358 | U+81F3-U+81F4 zh-hans ja zh-hant 1359 | U+81FC ja 1360 | U+8208 ja 1361 | U+820C ja 1362 | U+820E ja 1363 | U+8217 ja 1364 | U+821E-U+821F zh-hans ja zh-hant 1365 | U+822A zh-hans ja zh-hant 1366 | U+822C zh-hans ja zh-hant 1367 | U+8236-U+8237 ja 1368 | U+8239 zh-hans ja zh-hant 1369 | U+8247 ja 1370 | U+8266 ja zh-hant 1371 | U+826F zh-hans ja zh-hant 1372 | U+8272 zh-hans ja zh-hant 1373 | U+8276 ja 1374 | U+828B ja 1375 | U+829D zh-hans ja zh-hant 1376 | U+82AF ja 1377 | U+82B1 zh-hans ja zh-hant 1378 | U+82B3 zh-hans ja zh-hant 1379 | U+82B8 ja 1380 | U+82BD ja 1381 | U+82D7 zh-hans ja 1382 | U+82DB ja 1383 | U+82E5-U+82E6 zh-hans ja zh-hant 1384 | U+82F1 zh-hans ja zh-hant 1385 | U+8302 ja 1386 | U+830E ja 1387 | U+8328 zh-hans ja 1388 | U+8336 zh-hans ja zh-hant 1389 | U+8349 zh-hans ja zh-hant 1390 | U+8352 zh-hans ja zh-hant 1391 | U+8358 ja 1392 | U+8377 zh-hans ja zh-hant 1393 | U+83CA ja 1394 | U+83CC ja 1395 | U+83D3 ja 1396 | U+83DC zh-hans ja zh-hant 1397 | U+83EF ja zh-hant 1398 | U+840E ja 1399 | U+843D zh-hans ja zh-hant 1400 | U+8449 ja zh-hant 1401 | U+8457 zh-hans ja zh-hant 1402 | U+845B zh-hans ja zh-hant 1403 | U+846C ja 1404 | U+84B8 ja 1405 | U+84C4 ja 1406 | U+84CB ja zh-hant 1407 | U+8511 zh-hans ja 1408 | U+8535 ja 1409 | U+853D ja 1410 | U+8584 zh-hans ja zh-hant 1411 | U+85A6 ja zh-hant 1412 | U+85AA-U+85AC ja 1413 | U+85CD ja zh-hant 1414 | U+85E4 zh-hans ja 1415 | U+85E9 ja 1416 | U+85FB ja 1417 | U+864E zh-hans ja zh-hant 1418 | U+8650 ja 1419 | U+865A ja 1420 | U+865C ja 1421 | U+865E ja 1422 | U+866B zh-hans ja 1423 | U+8679 zh-hans ja 1424 | U+868A ja 1425 | U+8695 ja 1426 | U+86C7 zh-hans ja zh-hant 1427 | U+86CD ja 1428 | U+86EE zh-hans ja 1429 | U+8702 zh-hans ja zh-hant 1430 | U+871C zh-hans ja zh-hant 1431 | U+878D zh-hans ja zh-hant 1432 | U+8840 zh-hans ja zh-hant 1433 | U+8846 ja 1434 | U+884C zh-hans ja zh-hant 1435 | U+8853 ja zh-hant 1436 | U+8857 zh-hans ja zh-hant 1437 | U+885B ja zh-hant 1438 | U+885D ja zh-hant 1439 | U+8861 zh-hans ja zh-hant 1440 | U+8863 zh-hans ja zh-hant 1441 | U+8868 zh-hans ja zh-hant 1442 | U+8870 ja 1443 | U+8877 ja 1444 | U+888B zh-hans ja zh-hant 1445 | U+8896 ja 1446 | U+88AB zh-hans ja zh-hant 1447 | U+88C1-U+88C2 zh-hans ja zh-hant 1448 | U+88C5 zh-hans ja 1449 | U+88CF ja 1450 | U+88D5 zh-hans ja zh-hant 1451 | U+88DC ja 1452 | U+88F8 ja 1453 | U+88FD-U+88FE ja 1454 | U+8907 ja zh-hant 1455 | U+8910 ja 1456 | U+8912 ja 1457 | U+895F ja 1458 | U+8972 ja 1459 | U+897F zh-hans ja zh-hant 1460 | U+8981 zh-hans ja zh-hant 1461 | U+8986-U+8987 ja 1462 | U+898B ja zh-hant 1463 | U+898F ja zh-hant 1464 | U+8996 ja zh-hant 1465 | U+899A ja 1466 | U+89A7 ja 1467 | U+89AA ja zh-hant 1468 | U+89B3 ja 1469 | U+89D2 zh-hans ja zh-hant 1470 | U+89E3 zh-hans ja zh-hant 1471 | U+89E6 ja 1472 | U+8A00 zh-hans ja zh-hant 1473 | U+8A02-U+8A03 ja 1474 | U+8A08 ja zh-hant 1475 | U+8A0E ja zh-hant 1476 | U+8A13 ja zh-hant 1477 | U+8A17-U+8A18 ja zh-hant 1478 | U+8A1F ja 1479 | U+8A2A ja zh-hant 1480 | U+8A2D ja zh-hant 1481 | U+8A31 ja zh-hant 1482 | U+8A33-U+8A34 ja 1483 | U+8A3A ja 1484 | U+8A3C ja 1485 | U+8A50 ja 1486 | U+8A54-U+8A55 ja 1487 | U+8A5E ja zh-hant 1488 | U+8A60 ja 1489 | U+8A63 ja 1490 | U+8A66 ja zh-hant 1491 | U+8A69 ja zh-hant 1492 | U+8A6E ja 1493 | U+8A70-U+8A73 ja 1494 | U+8A87 ja zh-hant 1495 | U+8A89 zh-hans ja 1496 | U+8A8C-U+8A8D ja zh-hant 1497 | U+8A93 zh-hans ja zh-hant 1498 | U+8A95 ja zh-hant 1499 | U+8A98 ja 1500 | U+8A9E ja zh-hant 1501 | U+8AA0 ja zh-hant 1502 | U+8AA4 ja zh-hant 1503 | U+8AAC-U+8AAD ja 1504 | U+8AB0 ja zh-hant 1505 | U+8AB2 ja zh-hant 1506 | U+8ABF ja zh-hant 1507 | U+8AC7 ja zh-hant 1508 | U+8ACB ja zh-hant 1509 | U+8AD6 ja zh-hant 1510 | U+8AE6-U+8AE7 ja 1511 | U+8AED-U+8AEE ja 1512 | U+8AF8 ja zh-hant 1513 | U+8AFE ja zh-hant 1514 | U+8B00-U+8B01 ja 1515 | U+8B04 ja 1516 | U+8B0E ja 1517 | U+8B19 ja 1518 | U+8B1B ja zh-hant 1519 | U+8B1D ja zh-hant 1520 | U+8B21 ja 1521 | U+8B39 ja 1522 | U+8B58 ja zh-hant 1523 | U+8B5C ja zh-hant 1524 | U+8B66 zh-hans ja zh-hant 1525 | U+8B70 ja 1526 | U+8B72 ja 1527 | U+8B77 ja zh-hant 1528 | U+8C37 zh-hans ja zh-hant 1529 | U+8C46 zh-hans ja zh-hant 1530 | U+8C4A ja 1531 | U+8C5A ja 1532 | U+8C61 zh-hans ja zh-hant 1533 | U+8C6A zh-hans ja zh-hant 1534 | U+8C8C zh-hans ja zh-hant 1535 | U+8C9D-U+8C9E ja zh-hant 1536 | U+8CA0-U+8CA2 ja zh-hant 1537 | U+8CA7-U+8CAC ja 1538 | U+8CAF ja 1539 | U+8CB4 ja zh-hant 1540 | U+8CB7-U+8CB8 ja 1541 | U+8CBB-U+8CBC ja zh-hant 1542 | U+8CBF-U+8CC0 ja 1543 | U+8CC2-U+8CC4 ja 1544 | U+8CC7 ja 1545 | U+8CCA ja 1546 | U+8CD3 ja zh-hant 1547 | U+8CDB-U+8CDC ja 1548 | U+8CDE ja zh-hant 1549 | U+8CE0 ja 1550 | U+8CE2 ja 1551 | U+8CE6 ja zh-hant 1552 | U+8CEA ja zh-hant 1553 | U+8CED ja zh-hant 1554 | U+8CFC ja 1555 | U+8D08 ja zh-hant 1556 | U+8D64 zh-hans ja zh-hant 1557 | U+8D66 ja 1558 | U+8D70 zh-hans ja zh-hant 1559 | U+8D74 ja 1560 | U+8D77 zh-hans ja zh-hant 1561 | U+8D85 zh-hans ja zh-hant 1562 | U+8D8A ja zh-hant 1563 | U+8DA3 zh-hans ja zh-hant 1564 | U+8DB3 zh-hans ja zh-hant 1565 | U+8DDD zh-hans ja zh-hant 1566 | U+8DE1 ja zh-hant 1567 | U+8DEF zh-hans ja zh-hant 1568 | U+8DF3 zh-hans ja zh-hant 1569 | U+8DF5 ja 1570 | U+8E0A ja 1571 | U+8E0F zh-hans ja zh-hant 1572 | U+8E2A ja 1573 | U+8E74 ja 1574 | U+8E8D ja zh-hant 1575 | U+8EAB zh-hans ja zh-hant 1576 | U+8ECA ja zh-hant 1577 | U+8ECC-U+8ECD ja zh-hant 1578 | U+8ED2 ja zh-hant 1579 | U+8EDF ja zh-hant 1580 | U+8EE2 ja 1581 | U+8EF8 ja 1582 | U+8EFD ja 1583 | U+8F03 ja zh-hant 1584 | U+8F09 ja zh-hant 1585 | U+8F1D ja zh-hant 1586 | U+8F29-U+8F2A ja zh-hant 1587 | U+8F38 ja zh-hant 1588 | U+8F44 ja 1589 | U+8F9B zh-hans ja zh-hant 1590 | U+8F9E zh-hans ja 1591 | U+8FA3 ja 1592 | U+8FB1-U+8FB2 ja 1593 | U+8FBA ja 1594 | U+8FBC ja 1595 | U+8FC5 zh-hans ja zh-hant 1596 | U+8FCE zh-hans ja zh-hant 1597 | U+8FD1 ja zh-hant 1598 | U+8FD4 zh-hans ja zh-hant 1599 | U+8FEB ja 1600 | U+8FED ja 1601 | U+8FF0 zh-hans ja zh-hant 1602 | U+8FF7 zh-hans ja zh-hant 1603 | U+8FFD zh-hans ja zh-hant 1604 | U+9000-U+9001 ja zh-hant 1605 | U+9003 ja zh-hant 1606 | U+9006 zh-hans ja zh-hant 1607 | U+900F-U+9010 zh-hans ja zh-hant 1608 | U+9013-U+9014 ja 1609 | U+901A ja 1610 | U+901D zh-hans ja zh-hant 1611 | U+901F-U+9020 zh-hans ja zh-hant 1612 | U+9023 ja 1613 | U+902E ja 1614 | U+9031-U+9032 ja zh-hant 1615 | U+9038 zh-hans ja zh-hant 1616 | U+9042 ja 1617 | U+9045 ja 1618 | U+9047 zh-hans ja zh-hant 1619 | U+904A-U+904B ja zh-hant 1620 | U+904D-U+904E ja zh-hant 1621 | U+9053-U+9055 ja zh-hant 1622 | U+905C ja zh-hant 1623 | U+9060-U+9061 ja 1624 | U+9063 ja 1625 | U+9069 ja zh-hant 1626 | U+906D-U+906E zh-hans ja zh-hant 1627 | U+9075 zh-hans ja 1628 | U+9077-U+9078 ja zh-hant 1629 | U+907A ja zh-hant 1630 | U+907F ja 1631 | U+9084 ja zh-hant 1632 | U+90A3 zh-hans ja zh-hant 1633 | U+90A6 zh-hans ja zh-hant 1634 | U+90AA zh-hans ja zh-hant 1635 | U+90B8 ja 1636 | U+90CA ja 1637 | U+90CE zh-hans ja zh-hant 1638 | U+90E1 ja 1639 | U+90E8 zh-hans ja zh-hant 1640 | U+90ED zh-hans ja zh-hant 1641 | U+90F5 ja zh-hant 1642 | U+90F7 ja 1643 | U+90FD zh-hans ja zh-hant 1644 | U+914C-U+914E ja 1645 | U+9152 zh-hans ja zh-hant 1646 | U+9154 ja 1647 | U+9162 ja 1648 | U+916A ja 1649 | U+916C ja 1650 | U+9175 ja 1651 | U+9177-U+9178 zh-hans ja zh-hant 1652 | U+9192 zh-hans ja zh-hant 1653 | U+919C ja zh-hant 1654 | U+91B8 ja 1655 | U+91C7-U+91C8 ja 1656 | U+91CC-U+91CF zh-hans ja 1657 | U+91D1 zh-hans ja zh-hant 1658 | U+91DC-U+91DD ja 1659 | U+91E3 ja zh-hant 1660 | U+920D ja 1661 | U+9234 ja zh-hant 1662 | U+9244 ja 1663 | U+925B ja 1664 | U+9262 ja zh-hant 1665 | U+9271 ja 1666 | U+9280 ja zh-hant 1667 | U+9283 ja 1668 | U+9285 ja zh-hant 1669 | U+9298 ja zh-hant 1670 | U+92AD ja 1671 | U+92ED ja 1672 | U+92F3 ja 1673 | U+92FC ja zh-hant 1674 | U+9320 ja 1675 | U+9326 ja zh-hant 1676 | U+932C ja 1677 | U+932E-U+932F ja 1678 | U+9332 ja 1679 | U+934B ja zh-hant 1680 | U+935B ja 1681 | U+9375 ja zh-hant 1682 | U+938C ja 1683 | U+9396 ja zh-hant 1684 | U+93AE ja zh-hant 1685 | U+93E1 ja zh-hant 1686 | U+9418 ja zh-hant 1687 | U+9451 ja zh-hant 1688 | U+9577 ja zh-hant 1689 | U+9580 ja zh-hant 1690 | U+9589 ja zh-hant 1691 | U+958B ja zh-hant 1692 | U+9591 ja 1693 | U+9593 ja 1694 | U+95A2-U+95A3 ja 1695 | U+95A5 ja 1696 | U+95B2 ja 1697 | U+95C7 ja 1698 | U+95D8 ja 1699 | U+961C ja 1700 | U+962A ja 1701 | U+9632 ja zh-hant 1702 | U+963B zh-hans ja zh-hant 1703 | U+9644 ja zh-hant 1704 | U+964D zh-hans ja zh-hant 1705 | U+9650 zh-hans ja zh-hant 1706 | U+965B ja 1707 | U+9662-U+9665 ja 1708 | U+966A ja zh-hant 1709 | U+9670 ja zh-hant 1710 | U+9673 ja zh-hant 1711 | U+9675-U+9676 ja 1712 | U+9678 ja 1713 | U+967A ja 1714 | U+967D ja zh-hant 1715 | U+9685-U+9686 ja 1716 | U+968A ja zh-hant 1717 | U+968E-U+968F ja 1718 | U+9694 zh-hans ja zh-hant 1719 | U+9699 ja 1720 | U+969B-U+969C ja zh-hant 1721 | U+96A0 ja 1722 | U+96A3 ja 1723 | U+96B7 ja 1724 | U+96BB ja zh-hant 1725 | U+96C4-U+96C7 ja 1726 | U+96CC ja 1727 | U+96D1 ja 1728 | U+96E2-U+96E3 ja zh-hant 1729 | U+96E8 zh-hans ja zh-hant 1730 | U+96EA zh-hans ja zh-hant 1731 | U+96F0 ja 1732 | U+96F2 ja zh-hant 1733 | U+96F6-U+96F7 zh-hans ja zh-hant 1734 | U+96FB ja zh-hant 1735 | U+9700 zh-hans ja zh-hant 1736 | U+9707 zh-hans ja zh-hant 1737 | U+970A ja 1738 | U+971C ja 1739 | U+9727 ja zh-hant 1740 | U+9732 zh-hans ja zh-hant 1741 | U+9752 zh-hans ja zh-hant 1742 | U+9759 zh-hans ja 1743 | U+975E zh-hans ja zh-hant 1744 | U+9762 zh-hans ja zh-hant 1745 | U+9769 zh-hans ja zh-hant 1746 | U+9774 ja 1747 | U+97D3 ja zh-hant 1748 | U+97F3 zh-hans ja zh-hant 1749 | U+97FB ja zh-hant 1750 | U+97FF ja zh-hant 1751 | U+9802-U+9803 ja 1752 | U+9805-U+9806 ja zh-hant 1753 | U+9808 ja zh-hant 1754 | U+9810-U+9813 ja 1755 | U+9818 ja 1756 | U+982C-U+982D ja 1757 | U+983B-U+983C ja 1758 | U+984C-U+984E ja 1759 | U+9854-U+9855 ja 1760 | U+9858 ja zh-hant 1761 | U+985E ja zh-hant 1762 | U+9867 ja zh-hant 1763 | U+98A8 ja zh-hant 1764 | U+98DB ja zh-hant 1765 | U+98DF ja zh-hant 1766 | U+98E2 ja 1767 | U+98EF ja zh-hant 1768 | U+98F2 ja zh-hant 1769 | U+98FC-U+98FE ja 1770 | U+9905 ja zh-hant 1771 | U+990A ja zh-hant 1772 | U+990C ja 1773 | U+9913 ja 1774 | U+9928 ja zh-hant 1775 | U+9996 zh-hans ja zh-hant 1776 | U+9999 zh-hans ja zh-hant 1777 | U+99AC ja zh-hant 1778 | U+99C4-U+99C6 ja 1779 | U+99D0 ja zh-hant 1780 | U+99D2 ja 1781 | U+9A0E ja zh-hant 1782 | U+9A12-U+9A13 ja 1783 | U+9A30 ja 1784 | U+9A5A ja zh-hant 1785 | U+9AA8 zh-hans ja zh-hant 1786 | U+9AB8 ja 1787 | U+9AC4 ja 1788 | U+9AD8 zh-hans ja zh-hant 1789 | U+9AEA ja 1790 | U+9B31 ja zh-hant 1791 | U+9B3C zh-hans ja zh-hant 1792 | U+9B42 zh-hans ja 1793 | U+9B45 zh-hans ja zh-hant 1794 | U+9B54 zh-hans ja zh-hant 1795 | U+9B5A ja zh-hant 1796 | U+9BAE ja zh-hant 1797 | U+9BE8 ja 1798 | U+9CE5 ja zh-hant 1799 | U+9CF4 ja 1800 | U+9D8F ja 1801 | U+9DB4 ja 1802 | U+9E7F zh-hans ja zh-hant 1803 | U+9E93 ja 1804 | U+9E97 ja zh-hant 1805 | U+9EA6 zh-hans ja 1806 | U+9EBA-U+9EBB ja 1807 | U+9EC4 zh-hans ja 1808 | U+9ED2 ja 1809 | U+9ED9 ja 1810 | U+9F13 zh-hans ja zh-hant 1811 | U+9F3B zh-hans ja zh-hant 1812 | U+9F62 ja 1813 | U+FF61-U+FF65 ja 1814 | U+A1 es 1815 | U+BF es 1816 | U+C1 es 1817 | U+C9 es 1818 | U+CD es 1819 | U+D1 es 1820 | U+D3 es 1821 | U+DA es 1822 | U+DC de es 1823 | U+E1 es 1824 | U+E9 es 1825 | U+ED es 1826 | U+F1 es 1827 | U+F3 es 1828 | U+FA es 1829 | U+FC de es 1830 | U+61-U+7D it de 1831 | U+C0 it fr 1832 | U+C8-U+C9 it 1833 | U+CC it 1834 | U+D2-U+D3 it 1835 | U+D9 it fr 1836 | U+E0 it fr 1837 | U+E8-U+E9 it 1838 | U+EC it 1839 | U+F2-U+F3 it 1840 | U+F9 it fr 1841 | U+2011 it 1842 | U+2014 it 1843 | U+2019 it fr 1844 | U+C4 de 1845 | U+D6 de 1846 | U+DF de 1847 | U+E4 de 1848 | U+F6 de 1849 | U+2018 de ru 1850 | U+201A de ru 1851 | U+201C de ru 1852 | U+201E de ru 1853 | U+401 ru 1854 | U+410-U+44F ru 1855 | U+451 ru 1856 | U+B2-U+B3 fr 1857 | U+C2 fr 1858 | U+C6-U+CB fr 1859 | U+CE-U+CF fr 1860 | U+D4 fr 1861 | U+DB-U+DC fr 1862 | U+E2 fr 1863 | U+E6-U+EB fr 1864 | U+EE-U+EF fr 1865 | U+F4 fr 1866 | U+FB-U+FC fr 1867 | U+FF fr 1868 | U+152-U+153 fr 1869 | U+178 fr 1870 | U+2B3 fr 1871 | U+2E2 fr 1872 | U+1D48-U+1D49 fr 1873 | U+202F-U+2030 fr 1874 | U+2212 fr 1875 | U+4E07-U+4E0E zh-hans 1876 | U+4E11 zh-hans zh-hant 1877 | U+4E13-U+4E14 zh-hans 1878 | U+4E18-U+4E1A zh-hans 1879 | U+4E1C-U+4E1D zh-hans 1880 | U+4E22 zh-hans 1881 | U+4E24-U+4E25 zh-hans 1882 | U+4E27 zh-hans 1883 | U+4E2A zh-hans 1884 | U+4E30 zh-hans 1885 | U+4E34 zh-hans 1886 | U+4E38-U+4E3B zh-hans 1887 | U+4E3D-U+4E3E zh-hans 1888 | U+4E43 zh-hans zh-hant 1889 | U+4E48-U+4E49 zh-hans 1890 | U+4E4B-U+4E50 zh-hans 1891 | U+4E54 zh-hans 1892 | U+4E56 zh-hans zh-hant 1893 | U+4E58-U+4E59 zh-hans zh-hant 1894 | U+4E5D zh-hans zh-hant 1895 | U+4E5F-U+4E61 zh-hans 1896 | U+4E66 zh-hans 1897 | U+4E70-U+4E71 zh-hans 1898 | U+4E8E-U+4E8F zh-hans 1899 | U+4E91-U+4E92 zh-hans zh-hant 1900 | U+4E9A-U+4E9B zh-hans 1901 | U+4EA4-U+4EA8 zh-hans 1902 | U+4EAB-U+4EAC zh-hans 1903 | U+4EAE zh-hans 1904 | U+4EB2 zh-hans 1905 | U+4EBF-U+4EC1 zh-hans 1906 | U+4EC5 zh-hans 1907 | U+4EC7 zh-hans zh-hant 1908 | U+4ECD-U+4ECE zh-hans 1909 | U+4ED4 zh-hans zh-hant 1910 | U+4ED6 zh-hans zh-hant 1911 | U+4EEA zh-hans 1912 | U+4EEC zh-hans 1913 | U+4EF6-U+4EF7 zh-hans 1914 | U+4EFD zh-hans zh-hant 1915 | U+4EFF zh-hans 1916 | U+4F0A zh-hans zh-hant 1917 | U+4F0D zh-hans zh-hant 1918 | U+4F0F-U+4F11 zh-hans 1919 | U+4F17-U+4F1A zh-hans 1920 | U+4F1F-U+4F20 zh-hans 1921 | U+4F24 zh-hans 1922 | U+4F26 zh-hans 1923 | U+4F2F-U+4F30 zh-hans zh-hant 1924 | U+4F3C-U+4F3D zh-hans zh-hant 1925 | U+4F4D-U+4F51 zh-hans 1926 | U+4F5B-U+4F5C zh-hans zh-hant 1927 | U+4F60 zh-hans zh-hant 1928 | U+4F64 zh-hans 1929 | U+4F69 zh-hans zh-hant 1930 | U+4FA0 zh-hans 1931 | U+4FA6-U+4FA8 zh-hans 1932 | U+4FAC zh-hans 1933 | U+4FAF zh-hans zh-hant 1934 | U+4FB5 zh-hans zh-hant 1935 | U+4FC3-U+4FC4 zh-hans 1936 | U+4FE9 zh-hans 1937 | U+4FF1 zh-hans zh-hant 1938 | U+4FFE zh-hans zh-hant 1939 | U+5019-U+501A zh-hans zh-hant 1940 | U+5026 zh-hans 1941 | U+503C zh-hans zh-hant 1942 | U+503E zh-hans 1943 | U+5047 zh-hans zh-hant 1944 | U+504C zh-hans 1945 | U+505A zh-hans zh-hant 1946 | U+5076-U+5077 zh-hans 1947 | U+50A8 zh-hans 1948 | U+50BB zh-hans zh-hant 1949 | U+513F zh-hans 1950 | U+5141 zh-hans zh-hant 1951 | U+5151 zh-hans 1952 | U+5154 zh-hans zh-hant 1953 | U+516B-U+516E zh-hans zh-hant 1954 | U+5170-U+5171 zh-hans 1955 | U+5173-U+5179 zh-hans 1956 | U+517B-U+517D zh-hans 1957 | U+5185 zh-hans 1958 | U+5188 zh-hans 1959 | U+518C-U+518D zh-hans 1960 | U+519B-U+519C zh-hans 1961 | U+51B0 zh-hans zh-hant 1962 | U+51B2-U+51B3 zh-hans 1963 | U+51B5 zh-hans 1964 | U+51B7 zh-hans zh-hant 1965 | U+51CC zh-hans zh-hant 1966 | U+51CF zh-hans 1967 | U+51E0-U+51E1 zh-hans 1968 | U+51E4 zh-hans 1969 | U+51ED zh-hans 1970 | U+51EF-U+51F0 zh-hans 1971 | U+51FA-U+51FB zh-hans 1972 | U+51FD zh-hans zh-hant 1973 | U+5206-U+5207 zh-hans zh-hant 1974 | U+5211-U+5212 zh-hans 1975 | U+5217-U+521B zh-hans 1976 | U+5224 zh-hans 1977 | U+522B zh-hans 1978 | U+5236-U+5238 zh-hans 1979 | U+523A-U+523B zh-hans zh-hant 1980 | U+5242 zh-hans 1981 | U+5251 zh-hans 1982 | U+5267 zh-hans 1983 | U+5269-U+526A zh-hans zh-hant 1984 | U+526F zh-hans zh-hant 1985 | U+529D-U+52A1 zh-hans 1986 | U+52A8-U+52AB zh-hans 1987 | U+52B1-U+52B3 zh-hans 1988 | U+52BF zh-hans 1989 | U+52CB zh-hans 1990 | U+52D2 zh-hans zh-hant 1991 | U+52FE-U+52FF zh-hans 1992 | U+5305-U+5306 zh-hans 1993 | U+5308 zh-hans zh-hant 1994 | U+5319 zh-hans 1995 | U+534E-U+534F zh-hans 1996 | U+5352-U+5353 zh-hans 1997 | U+5355-U+5357 zh-hans 1998 | U+5360-U+5362 zh-hans 1999 | U+536B zh-hans 2000 | U+536F-U+5371 zh-hans zh-hant 2001 | U+5373-U+5374 zh-hans 2002 | U+5377 zh-hans zh-hant 2003 | U+5382 zh-hans 2004 | U+5384-U+5386 zh-hans 2005 | U+5389 zh-hans 2006 | U+538B-U+538D zh-hans 2007 | U+53BF zh-hans 2008 | U+53C8-U+53CD zh-hans 2009 | U+53D1 zh-hans 2010 | U+53D6-U+53D9 zh-hans 2011 | U+53E3-U+53E6 zh-hans 2012 | U+53EA-U+53ED zh-hans zh-hant 2013 | U+53EF-U+53F0 zh-hans zh-hant 2014 | U+53F2-U+53F3 zh-hans zh-hant 2015 | U+53F6-U+53F9 zh-hans 2016 | U+5403-U+5404 zh-hans zh-hant 2017 | U+5408-U+540A zh-hans zh-hant 2018 | U+540C-U+540E zh-hans zh-hant 2019 | U+5410-U+5411 zh-hans 2020 | U+5413 zh-hans 2021 | U+5417 zh-hans 2022 | U+541D zh-hans 2023 | U+5426-U+5427 zh-hans zh-hant 2024 | U+542B-U+542C zh-hans 2025 | U+542F zh-hans 2026 | U+5435 zh-hans zh-hant 2027 | U+543B zh-hans 2028 | U+543E zh-hans zh-hant 2029 | U+5440 zh-hans zh-hant 2030 | U+5446 zh-hans zh-hant 2031 | U+5448 zh-hans 2032 | U+544A zh-hans zh-hant 2033 | U+5450 zh-hans 2034 | U+5458 zh-hans 2035 | U+545C zh-hans 2036 | U+5462 zh-hans zh-hant 2037 | U+5466 zh-hans 2038 | U+5475 zh-hans zh-hant 2039 | U+5496 zh-hans zh-hant 2040 | U+54A6-U+54A8 zh-hans 2041 | U+54AA zh-hans zh-hant 2042 | U+54AC zh-hans zh-hant 2043 | U+54AF zh-hans 2044 | U+54B1 zh-hans zh-hant 2045 | U+54C7-U+54C9 zh-hans zh-hant 2046 | U+54CD-U+54CE zh-hans 2047 | U+54DF zh-hans 2048 | U+54E5-U+54E6 zh-hans zh-hant 2049 | U+54E9-U+54EA zh-hans zh-hant 2050 | U+54ED zh-hans zh-hant 2051 | U+5509 zh-hans zh-hant 2052 | U+5524 zh-hans 2053 | U+552C zh-hans zh-hant 2054 | U+552E-U+552F zh-hans zh-hant 2055 | U+5537 zh-hans 2056 | U+554A zh-hans zh-hant 2057 | U+5561 zh-hans zh-hant 2058 | U+5565-U+5566 zh-hans zh-hant 2059 | U+556A zh-hans zh-hant 2060 | U+5580 zh-hans zh-hant 2061 | U+5582 zh-hans zh-hant 2062 | U+5587 zh-hans zh-hant 2063 | U+558A zh-hans zh-hant 2064 | U+558F zh-hans 2065 | U+5594 zh-hans zh-hant 2066 | U+55B5 zh-hans zh-hant 2067 | U+55B7 zh-hans 2068 | U+55BB zh-hans 2069 | U+55D2 zh-hans 2070 | U+55E8 zh-hans zh-hant 2071 | U+55EF zh-hans zh-hant 2072 | U+5609 zh-hans zh-hant 2073 | U+561B zh-hans zh-hant 2074 | U+5634 zh-hans zh-hant 2075 | U+563B zh-hans zh-hant 2076 | U+563F zh-hans zh-hant 2077 | U+56DB zh-hans zh-hant 2078 | U+56E2 zh-hans 2079 | U+56ED zh-hans 2080 | U+56F4 zh-hans 2081 | U+56FD-U+56FE zh-hans 2082 | U+5706 zh-hans 2083 | U+5708 zh-hans zh-hant 2084 | U+5723 zh-hans 2085 | U+5728 zh-hans zh-hant 2086 | U+572D zh-hans zh-hant 2087 | U+5733 zh-hans 2088 | U+573A zh-hans 2089 | U+573E zh-hans zh-hant 2090 | U+5740 zh-hans zh-hant 2091 | U+574E zh-hans zh-hant 2092 | U+5750-U+5751 zh-hans 2093 | U+5757 zh-hans 2094 | U+575A-U+575C zh-hans 2095 | U+5761 zh-hans zh-hant 2096 | U+5764 zh-hans zh-hant 2097 | U+5766 zh-hans zh-hant 2098 | U+5782-U+5783 zh-hans zh-hant 2099 | U+5792 zh-hans 2100 | U+57C3 zh-hans zh-hant 2101 | U+57D4 zh-hans zh-hant 2102 | U+5806 zh-hans 2103 | U+5821 zh-hans zh-hant 2104 | U+589E zh-hans zh-hant 2105 | U+58E4 zh-hans 2106 | U+58EB-U+58EC zh-hans zh-hant 2107 | U+58F0 zh-hans 2108 | U+5904 zh-hans 2109 | U+5907 zh-hans 2110 | U+590D zh-hans 2111 | U+591F zh-hans 2112 | U+5925 zh-hans zh-hant 2113 | U+5934 zh-hans 2114 | U+5937-U+593A zh-hans 2115 | U+594B zh-hans 2116 | U+5956-U+5957 zh-hans 2117 | U+5976 zh-hans zh-hant 2118 | U+5979 zh-hans zh-hant 2119 | U+5982 zh-hans zh-hant 2120 | U+5987-U+5988 zh-hans 2121 | U+59AE zh-hans zh-hant 2122 | U+59C6 zh-hans zh-hant 2123 | U+59CA-U+59CB zh-hans zh-hant 2124 | U+59D0-U+59D1 zh-hans zh-hant 2125 | U+5A03-U+5A04 zh-hans 2126 | U+5A1C zh-hans 2127 | U+5A1F zh-hans 2128 | U+5A31 zh-hans 2129 | U+5AE9 zh-hans zh-hant 2130 | U+5B54-U+5B55 zh-hans 2131 | U+5B57-U+5B59 zh-hans 2132 | U+5B5C-U+5B5D zh-hans 2133 | U+5B5F zh-hans zh-hant 2134 | U+5B69 zh-hans zh-hant 2135 | U+5B81 zh-hans 2136 | U+5B83 zh-hans zh-hant 2137 | U+5B8B-U+5B8C zh-hans zh-hant 2138 | U+5B8F zh-hans zh-hant 2139 | U+5B97-U+5B9E zh-hans 2140 | U+5BA1-U+5BA4 zh-hans 2141 | U+5BAA zh-hans 2142 | U+5BB3-U+5BB4 zh-hans 2143 | U+5BB6 zh-hans zh-hant 2144 | U+5BBD-U+5BBF zh-hans 2145 | U+5BC4-U+5BC7 zh-hans 2146 | U+5BDD-U+5BDF zh-hans 2147 | U+5BE8 zh-hans 2148 | U+5BF8-U+5BF9 zh-hans 2149 | U+5BFB-U+5BFC zh-hans 2150 | U+5BFF zh-hans 2151 | U+5C01 zh-hans zh-hant 2152 | U+5C0A zh-hans 2153 | U+5C0F zh-hans 2154 | U+5C14 zh-hans 2155 | U+5C16 zh-hans zh-hant 2156 | U+5C18 zh-hans 2157 | U+5C1D zh-hans 2158 | U+5C24 zh-hans zh-hant 2159 | U+5C3A zh-hans zh-hant 2160 | U+5C3C-U+5C3E zh-hans 2161 | U+5C40-U+5C42 zh-hans 2162 | U+5C4B zh-hans zh-hant 2163 | U+5C4F zh-hans zh-hant 2164 | U+5C60 zh-hans zh-hant 2165 | U+5C81-U+5C82 zh-hans 2166 | U+5C97-U+5C98 zh-hans 2167 | U+5C9A-U+5C9B zh-hans 2168 | U+5CE1 zh-hans 2169 | U+5D34 zh-hans zh-hant 2170 | U+5DEB zh-hans zh-hant 2171 | U+5DF1-U+5DF4 zh-hans zh-hant 2172 | U+5DF7 zh-hans zh-hant 2173 | U+5E01-U+5E03 zh-hans 2174 | U+5E05 zh-hans 2175 | U+5E08 zh-hans 2176 | U+5E10 zh-hans 2177 | U+5E15-U+5E16 zh-hans zh-hant 2178 | U+5E26 zh-hans 2179 | U+5E2D-U+5E2E zh-hans 2180 | U+5E76 zh-hans 2181 | U+5E78 zh-hans 2182 | U+5E7B-U+5E7D zh-hans 2183 | U+5E7F zh-hans 2184 | U+5E86 zh-hans 2185 | U+5E93-U+5E95 zh-hans 2186 | U+5E99-U+5E9A zh-hans 2187 | U+5E9E-U+5E9F zh-hans 2188 | U+5EB7-U+5EB8 zh-hans zh-hant 2189 | U+5EC9 zh-hans zh-hant 2190 | U+5ED6 zh-hans zh-hant 2191 | U+5F00 zh-hans 2192 | U+5F02-U+5F04 zh-hans 2193 | U+5F0F zh-hans zh-hant 2194 | U+5F15 zh-hans zh-hant 2195 | U+5F17-U+5F18 zh-hans zh-hant 2196 | U+5F1F-U+5F20 zh-hans 2197 | U+5F25-U+5F26 zh-hans 2198 | U+5F2F zh-hans 2199 | U+5F39-U+5F3A zh-hans 2200 | U+5F52-U+5F53 zh-hans 2201 | U+5F55 zh-hans 2202 | U+5F5D zh-hans 2203 | U+5F6C-U+5F6D zh-hans zh-hant 2204 | U+5F77 zh-hans 2205 | U+5F7B-U+5F7C zh-hans 2206 | U+5F88 zh-hans zh-hant 2207 | U+5F92 zh-hans 2208 | U+5FAA zh-hans 2209 | U+5FB5 zh-hans zh-hant 2210 | U+5FB7 zh-hans zh-hant 2211 | U+5FC5-U+5FC6 zh-hans 2212 | U+5FE7 zh-hans 2213 | U+5FFD zh-hans zh-hant 2214 | U+6000-U+6001 zh-hans 2215 | U+600E zh-hans zh-hant 2216 | U+6015-U+6016 zh-hans zh-hant 2217 | U+6021 zh-hans zh-hant 2218 | U+603B zh-hans 2219 | U+6062 zh-hans zh-hant 2220 | U+606F-U+6070 zh-hans zh-hant 2221 | U+6076 zh-hans 2222 | U+607C zh-hans 2223 | U+6084 zh-hans 2224 | U+6089 zh-hans zh-hant 2225 | U+60A8 zh-hans zh-hant 2226 | U+60E0 zh-hans 2227 | U+60EF zh-hans 2228 | U+60F9 zh-hans zh-hant 2229 | U+6108-U+6109 zh-hans zh-hant 2230 | U+611A zh-hans 2231 | U+6127 zh-hans 2232 | U+6162 zh-hans 2233 | U+6167 zh-hans zh-hant 2234 | U+61C2 zh-hans zh-hant 2235 | U+61D2 zh-hans 2236 | U+6208 zh-hans zh-hant 2237 | U+620A zh-hans zh-hant 2238 | U+620C zh-hans zh-hant 2239 | U+620F-U+6212 zh-hans 2240 | U+6216 zh-hans zh-hant 2241 | U+6218 zh-hans 2242 | U+622A zh-hans zh-hant 2243 | U+6237 zh-hans 2244 | U+623F-U+6241 zh-hans zh-hant 2245 | U+624D-U+624E zh-hans zh-hant 2246 | U+6251 zh-hans 2247 | U+6258 zh-hans zh-hant 2248 | U+6263 zh-hans zh-hant 2249 | U+6267 zh-hans 2250 | U+6269 zh-hans 2251 | U+626B-U+626F zh-hans 2252 | U+627E-U+6280 zh-hans zh-hant 2253 | U+6293 zh-hans zh-hant 2254 | U+62A2 zh-hans 2255 | U+62A4-U+62A5 zh-hans 2256 | U+62AB-U+62AC zh-hans zh-hant 2257 | U+62BD zh-hans zh-hant 2258 | U+62C5-U+62C6 zh-hans 2259 | U+62D2 zh-hans zh-hant 2260 | U+62D4 zh-hans zh-hant 2261 | U+62D6 zh-hans zh-hant 2262 | U+62D8 zh-hans 2263 | U+62DB-U+62DC zh-hans zh-hant 2264 | U+62DF zh-hans 2265 | U+62E5-U+62E6 zh-hans 2266 | U+62E8-U+62E9 zh-hans 2267 | U+62EC zh-hans zh-hant 2268 | U+62F7 zh-hans 2269 | U+62FC zh-hans zh-hant 2270 | U+62FE-U+62FF zh-hans zh-hant 2271 | U+6309 zh-hans zh-hant 2272 | U+6316 zh-hans zh-hant 2273 | U+631D zh-hans 2274 | U+6321 zh-hans 2275 | U+6324-U+6325 zh-hans 2276 | U+632A zh-hans zh-hant 2277 | U+633A zh-hans zh-hant 2278 | U+6350 zh-hans zh-hant 2279 | U+635F zh-hans 2280 | U+6361-U+6362 zh-hans 2281 | U+6377 zh-hans zh-hant 2282 | U+6388-U+6389 zh-hans zh-hant 2283 | U+63A2 zh-hans 2284 | U+63A7-U+63AA zh-hans 2285 | U+63B8 zh-hans 2286 | U+63D2 zh-hans zh-hant 2287 | U+641C zh-hans zh-hant 2288 | U+641E zh-hans zh-hant 2289 | U+6444 zh-hans 2290 | U+6446 zh-hans 2291 | U+644A zh-hans 2292 | U+6454 zh-hans 2293 | U+6478 zh-hans zh-hant 2294 | U+6492 zh-hans zh-hant 2295 | U+649E zh-hans zh-hant 2296 | U+64AD zh-hans zh-hant 2297 | U+64CD-U+64CE zh-hans zh-hant 2298 | U+6536 zh-hans zh-hant 2299 | U+6548 zh-hans zh-hant 2300 | U+654C zh-hans 2301 | U+655D zh-hans zh-hant 2302 | U+6566 zh-hans zh-hant 2303 | U+6572 zh-hans 2304 | U+6574 zh-hans 2305 | U+658B zh-hans 2306 | U+6590 zh-hans zh-hant 2307 | U+65A5 zh-hans 2308 | U+65AD zh-hans 2309 | U+65AF-U+65B0 zh-hans zh-hant 2310 | U+65BC-U+65BD zh-hans zh-hant 2311 | U+65C1 zh-hans zh-hant 2312 | U+65E0 zh-hans 2313 | U+65ED zh-hans zh-hant 2314 | U+65F6 zh-hans 2315 | U+6602 zh-hans zh-hant 2316 | U+6606 zh-hans 2317 | U+660C zh-hans zh-hant 2318 | U+660E-U+660F zh-hans zh-hant 2319 | U+6613 zh-hans zh-hant 2320 | U+6628 zh-hans zh-hant 2321 | U+663E zh-hans 2322 | U+6643 zh-hans 2323 | U+664B zh-hans 2324 | U+6652-U+6653 zh-hans 2325 | U+665A zh-hans zh-hant 2326 | U+6668 zh-hans zh-hant 2327 | U+667A zh-hans zh-hant 2328 | U+6682 zh-hans 2329 | U+66F0 zh-hans zh-hant 2330 | U+66F9 zh-hans 2331 | U+66FC zh-hans zh-hant 2332 | U+66FE-U+6700 zh-hans zh-hant 2333 | U+670B zh-hans zh-hant 2334 | U+672F zh-hans 2335 | U+6735 zh-hans zh-hant 2336 | U+6740 zh-hans 2337 | U+6742-U+6743 zh-hans 2338 | U+674E zh-hans zh-hant 2339 | U+675C zh-hans zh-hant 2340 | U+6768 zh-hans 2341 | U+676F-U+6770 zh-hans 2342 | U+6781 zh-hans 2343 | U+6784 zh-hans 2344 | U+67AA-U+67AB zh-hans 2345 | U+67CF-U+67D0 zh-hans zh-hant 2346 | U+67E5 zh-hans zh-hant 2347 | U+67EC zh-hans zh-hant 2348 | U+67EF zh-hans zh-hant 2349 | U+67F3-U+67F4 zh-hans zh-hant 2350 | U+6807 zh-hans 2351 | U+680B zh-hans 2352 | U+680F zh-hans 2353 | U+6811 zh-hans 2354 | U+6837-U+6839 zh-hans 2355 | U+683C zh-hans zh-hant 2356 | U+6846 zh-hans 2357 | U+684C zh-hans zh-hant 2358 | U+6863 zh-hans 2359 | U+6865 zh-hans 2360 | U+6881 zh-hans zh-hant 2361 | U+68A6 zh-hans 2362 | U+68AF-U+68B0 zh-hans zh-hant 2363 | U+68B5 zh-hans zh-hant 2364 | U+68C0 zh-hans 2365 | U+68C9 zh-hans zh-hant 2366 | U+690D zh-hans zh-hant 2367 | U+6930 zh-hans zh-hant 2368 | U+695A zh-hans zh-hant 2369 | U+697C zh-hans 2370 | U+699C zh-hans zh-hant 2371 | U+6A31 zh-hans 2372 | U+6A80 zh-hans zh-hant 2373 | U+6B20-U+6B23 zh-hans 2374 | U+6B49 zh-hans zh-hant 2375 | U+6B62-U+6B66 zh-hans 2376 | U+6B6A zh-hans 2377 | U+6B8A-U+6B8B zh-hans 2378 | U+6BB5 zh-hans zh-hant 2379 | U+6BC5 zh-hans zh-hant 2380 | U+6BCD zh-hans zh-hant 2381 | U+6BCF zh-hans zh-hant 2382 | U+6BD4-U+6BD5 zh-hans 2383 | U+6BEB zh-hans zh-hant 2384 | U+6C14 zh-hans 2385 | U+6C1B zh-hans 2386 | U+6C38 zh-hans zh-hant 2387 | U+6C42 zh-hans zh-hant 2388 | U+6C47 zh-hans 2389 | U+6C49 zh-hans 2390 | U+6C5D zh-hans zh-hant 2391 | U+6C5F-U+6C61 zh-hans zh-hant 2392 | U+6C64 zh-hans 2393 | U+6C6A zh-hans zh-hant 2394 | U+6C76 zh-hans zh-hant 2395 | U+6C88-U+6C89 zh-hans zh-hant 2396 | U+6C9F zh-hans 2397 | U+6CA1 zh-hans 2398 | U+6CA7 zh-hans 2399 | U+6CB9 zh-hans zh-hant 2400 | U+6CBB zh-hans zh-hant 2401 | U+6CDB zh-hans 2402 | U+6CFD zh-hans 2403 | U+6D1B zh-hans zh-hant 2404 | U+6D32 zh-hans zh-hant 2405 | U+6D3D-U+6D3E zh-hans zh-hant 2406 | U+6D45 zh-hans 2407 | U+6D4B zh-hans 2408 | U+6D4E-U+6D4F zh-hans 2409 | U+6D51 zh-hans 2410 | U+6D53 zh-hans 2411 | U+6D59 zh-hans 2412 | U+6D69-U+6D6A zh-hans zh-hant 2413 | U+6D77 zh-hans zh-hant 2414 | U+6D85 zh-hans 2415 | U+6D88-U+6D89 zh-hans 2416 | U+6D9B zh-hans 2417 | U+6DA8 zh-hans 2418 | U+6DB5 zh-hans zh-hant 2419 | U+6DCB zh-hans 2420 | U+6DD8 zh-hans 2421 | U+6E10 zh-hans 2422 | U+6E23 zh-hans 2423 | U+6E34 zh-hans 2424 | U+6E38 zh-hans zh-hant 2425 | U+6E7E zh-hans 2426 | U+6E9C zh-hans 2427 | U+6EAA zh-hans 2428 | U+6EE1 zh-hans 2429 | U+6EE5 zh-hans 2430 | U+6EE8 zh-hans 2431 | U+6F02 zh-hans zh-hant 2432 | U+6F2B zh-hans zh-hant 2433 | U+6F58 zh-hans zh-hant 2434 | U+6F8E zh-hans 2435 | U+6FB3 zh-hans zh-hant 2436 | U+6FC0 zh-hans zh-hant 2437 | U+704C zh-hans zh-hant 2438 | U+706D zh-hans 2439 | U+7075 zh-hans 2440 | U+707F zh-hans 2441 | U+7089 zh-hans 2442 | U+70AE zh-hans zh-hant 2443 | U+70B8-U+70B9 zh-hans 2444 | U+70C2 zh-hans 2445 | U+70E4 zh-hans zh-hant 2446 | U+70E6-U+70E7 zh-hans 2447 | U+70ED zh-hans 2448 | U+714C zh-hans 2449 | U+715E zh-hans zh-hant 2450 | U+71D5 zh-hans 2451 | U+722C zh-hans 2452 | U+7231 zh-hans 2453 | U+7235-U+7238 zh-hans 2454 | U+724C zh-hans zh-hant 2455 | U+7261-U+7262 zh-hans 2456 | U+7275 zh-hans 2457 | U+7279-U+727A zh-hans 2458 | U+72B9 zh-hans 2459 | U+72D0 zh-hans zh-hant 2460 | U+72D7 zh-hans zh-hant 2461 | U+72E0 zh-hans zh-hant 2462 | U+72EC zh-hans 2463 | U+72EE zh-hans 2464 | U+72F1 zh-hans 2465 | U+72FC zh-hans zh-hant 2466 | U+731B-U+731C zh-hans zh-hant 2467 | U+732A zh-hans 2468 | U+7334 zh-hans zh-hant 2469 | U+739B zh-hans 2470 | U+73AB zh-hans zh-hant 2471 | U+73AF-U+73B0 zh-hans 2472 | U+73B2 zh-hans zh-hant 2473 | U+73BB zh-hans zh-hant 2474 | U+73C0 zh-hans 2475 | U+73CA zh-hans zh-hant 2476 | U+740A zh-hans 2477 | U+742A zh-hans zh-hant 2478 | U+7433-U+7434 zh-hans 2479 | U+743C zh-hans 2480 | U+7459 zh-hans zh-hant 2481 | U+745C zh-hans zh-hant 2482 | U+745E-U+745F zh-hans zh-hant 2483 | U+7470 zh-hans zh-hant 2484 | U+7476 zh-hans 2485 | U+74DC zh-hans zh-hant 2486 | U+751C zh-hans zh-hant 2487 | U+7535 zh-hans 2488 | U+7537-U+7538 zh-hans zh-hant 2489 | U+753B zh-hans 2490 | U+7545 zh-hans 2491 | U+7586 zh-hans zh-hant 2492 | U+758F zh-hans zh-hant 2493 | U+7597 zh-hans 2494 | U+75AF zh-hans 2495 | U+75BC zh-hans zh-hant 2496 | U+7678 zh-hans zh-hant 2497 | U+767B zh-hans 2498 | U+76C8 zh-hans 2499 | U+76D1-U+76D2 zh-hans 2500 | U+76D6 zh-hans 2501 | U+76D8 zh-hans 2502 | U+76FC zh-hans zh-hant 2503 | U+770B zh-hans zh-hant 2504 | U+775B zh-hans zh-hant 2505 | U+77A7 zh-hans zh-hant 2506 | U+77E3 zh-hans zh-hant 2507 | U+77F6 zh-hans 2508 | U+7801-U+7802 zh-hans 2509 | U+780D zh-hans zh-hant 2510 | U+7814 zh-hans zh-hant 2511 | U+7840 zh-hans 2512 | U+7855 zh-hans 2513 | U+786C zh-hans zh-hant 2514 | U+786E zh-hans 2515 | U+788D-U+788E zh-hans 2516 | U+7897 zh-hans zh-hant 2517 | U+789F zh-hans zh-hant 2518 | U+78A7 zh-hans zh-hant 2519 | U+78B0 zh-hans zh-hant 2520 | U+78C5 zh-hans 2521 | U+795A zh-hans 2522 | U+796F zh-hans 2523 | U+7978 zh-hans 2524 | U+79BB zh-hans 2525 | U+79CD zh-hans 2526 | U+79E4 zh-hans zh-hant 2527 | U+79E6 zh-hans zh-hant 2528 | U+79EF-U+79F0 zh-hans 2529 | U+7A00 zh-hans 2530 | U+7A0D-U+7A0E zh-hans 2531 | U+7A23 zh-hans 2532 | U+7A33 zh-hans 2533 | U+7A3F zh-hans zh-hant 2534 | U+7A46 zh-hans zh-hant 2535 | U+7A76-U+7A77 zh-hans 2536 | U+7A79-U+7A7A zh-hans zh-hant 2537 | U+7A7F zh-hans zh-hant 2538 | U+7A97 zh-hans zh-hant 2539 | U+7A9D zh-hans 2540 | U+7AD9 zh-hans zh-hant 2541 | U+7ADE-U+7AE0 zh-hans 2542 | U+7B14 zh-hans 2543 | U+7B28 zh-hans zh-hant 2544 | U+7B51 zh-hans 2545 | U+7B79 zh-hans 2546 | U+7B7E zh-hans 2547 | U+7B80 zh-hans zh-hant 2548 | U+7BAD zh-hans zh-hant 2549 | U+7BC7 zh-hans zh-hant 2550 | U+7BEE zh-hans 2551 | U+7C7B zh-hans 2552 | U+7C97 zh-hans zh-hant 2553 | U+7CA4 zh-hans 2554 | U+7CB9 zh-hans 2555 | U+7CCA zh-hans zh-hant 2556 | U+7CD5-U+7CD6 zh-hans 2557 | U+7CDF zh-hans zh-hant 2558 | U+7D20 zh-hans zh-hant 2559 | U+7D22 zh-hans zh-hant 2560 | U+7D27 zh-hans 2561 | U+7D2F zh-hans 2562 | U+7EA2 zh-hans 2563 | U+7EA6-U+7EA7 zh-hans 2564 | U+7EAA zh-hans 2565 | U+7EAF zh-hans 2566 | U+7EB2-U+7EB3 zh-hans 2567 | U+7EB5 zh-hans 2568 | U+7EB7-U+7EB8 zh-hans 2569 | U+7EBD zh-hans 2570 | U+7EBF zh-hans 2571 | U+7EC3-U+7EC4 zh-hans 2572 | U+7EC6-U+7EC8 zh-hans 2573 | U+7ECD zh-hans 2574 | U+7ECF zh-hans 2575 | U+7ED3 zh-hans 2576 | U+7ED5 zh-hans 2577 | U+7ED8-U+7ED9 zh-hans 2578 | U+7EDC-U+7EDD zh-hans 2579 | U+7EDF zh-hans 2580 | U+7EE7 zh-hans 2581 | U+7EE9-U+7EEA zh-hans 2582 | U+7EED zh-hans 2583 | U+7EF4-U+7EF5 zh-hans 2584 | U+7EFC zh-hans 2585 | U+7EFF zh-hans 2586 | U+7F05 zh-hans 2587 | U+7F13 zh-hans 2588 | U+7F16 zh-hans 2589 | U+7F18 zh-hans 2590 | U+7F20 zh-hans 2591 | U+7F29 zh-hans 2592 | U+7F34 zh-hans 2593 | U+7F38 zh-hans zh-hant 2594 | U+7F3A zh-hans zh-hant 2595 | U+7F50-U+7F51 zh-hans 2596 | U+7F55 zh-hans zh-hant 2597 | U+7F57 zh-hans 2598 | U+7F5A zh-hans 2599 | U+7F62 zh-hans 2600 | U+7FAF zh-hans 2601 | U+7FC5 zh-hans 2602 | U+7FD4 zh-hans zh-hant 2603 | U+7FD8 zh-hans 2604 | U+7FE0 zh-hans 2605 | U+7FF0 zh-hans zh-hant 2606 | U+8000-U+8001 zh-hans zh-hant 2607 | U+800C-U+800D zh-hans zh-hant 2608 | U+8036 zh-hans zh-hant 2609 | U+804A zh-hans zh-hant 2610 | U+804C zh-hans 2611 | U+8054 zh-hans 2612 | U+8058 zh-hans 2613 | U+805A zh-hans zh-hant 2614 | U+806A zh-hans 2615 | U+809A zh-hans zh-hant 2616 | U+80A1 zh-hans zh-hant 2617 | U+80A4-U+80A5 zh-hans 2618 | U+80A9 zh-hans zh-hant 2619 | U+80C1 zh-hans 2620 | U+80D6 zh-hans zh-hant 2621 | U+80DC zh-hans 2622 | U+80E1 zh-hans zh-hant 2623 | U+80F6 zh-hans 2624 | U+8106 zh-hans zh-hant 2625 | U+8111 zh-hans 2626 | U+8138 zh-hans 2627 | U+814A zh-hans 2628 | U+8153 zh-hans 2629 | U+8179 zh-hans 2630 | U+817E-U+817F zh-hans 2631 | U+81C2 zh-hans 2632 | U+820C-U+820D zh-hans zh-hant 2633 | U+8212 zh-hans zh-hant 2634 | U+8230 zh-hans 2635 | U+827A zh-hans 2636 | U+827E zh-hans zh-hant 2637 | U+8282 zh-hans 2638 | U+8292 zh-hans 2639 | U+82A6 zh-hans 2640 | U+82AC-U+82AD zh-hans 2641 | U+82CD zh-hans 2642 | U+82CF zh-hans 2643 | U+8302-U+8303 zh-hans 2644 | U+832B zh-hans zh-hant 2645 | U+8350 zh-hans 2646 | U+8363 zh-hans 2647 | U+836F zh-hans 2648 | U+8389 zh-hans 2649 | U+838E zh-hans zh-hant 2650 | U+83AA-U+83AB zh-hans 2651 | U+83B1-U+83B2 zh-hans 2652 | U+83B7 zh-hans 2653 | U+83E9 zh-hans zh-hant 2654 | U+83F2 zh-hans zh-hant 2655 | U+8404 zh-hans zh-hant 2656 | U+840D zh-hans 2657 | U+8424-U+8425 zh-hans 2658 | U+8427-U+8428 zh-hans 2659 | U+8461 zh-hans zh-hant 2660 | U+8482 zh-hans zh-hant 2661 | U+848B zh-hans 2662 | U+8499 zh-hans zh-hant 2663 | U+84C9 zh-hans 2664 | U+84DD zh-hans 2665 | U+84EC zh-hans 2666 | U+8521 zh-hans zh-hant 2667 | U+85AA zh-hans 2668 | U+85C9 zh-hans zh-hant 2669 | U+85CF zh-hans zh-hant 2670 | U+8651 zh-hans 2671 | U+867D-U+867E zh-hans 2672 | U+8681 zh-hans 2673 | U+86CB zh-hans zh-hant 2674 | U+86D9 zh-hans zh-hant 2675 | U+8776 zh-hans zh-hant 2676 | U+87F9 zh-hans zh-hant 2677 | U+8822 zh-hans 2678 | U+8865 zh-hans 2679 | U+88AD zh-hans 2680 | U+88E4 zh-hans 2681 | U+8986 zh-hans zh-hant 2682 | U+89C1-U+89C2 zh-hans 2683 | U+89C4 zh-hans 2684 | U+89C6 zh-hans 2685 | U+89C8-U+89C9 zh-hans 2686 | U+8BA1-U+8BA2 zh-hans 2687 | U+8BA4 zh-hans 2688 | U+8BA8-U+8BA9 zh-hans 2689 | U+8BAD-U+8BB0 zh-hans 2690 | U+8BB2 zh-hans 2691 | U+8BB7-U+8BB8 zh-hans 2692 | U+8BBA zh-hans 2693 | U+8BBE-U+8BBF zh-hans 2694 | U+8BC1 zh-hans 2695 | U+8BC4 zh-hans 2696 | U+8BC6 zh-hans 2697 | U+8BC9 zh-hans 2698 | U+8BCD zh-hans 2699 | U+8BD1 zh-hans 2700 | U+8BD5 zh-hans 2701 | U+8BD7 zh-hans 2702 | U+8BDA zh-hans 2703 | U+8BDD-U+8BDE zh-hans 2704 | U+8BE2 zh-hans 2705 | U+8BE5-U+8BE6 zh-hans 2706 | U+8BED zh-hans 2707 | U+8BEF zh-hans 2708 | U+8BF4 zh-hans 2709 | U+8BF7-U+8BF8 zh-hans 2710 | U+8BFA-U+8BFB zh-hans 2711 | U+8BFE zh-hans 2712 | U+8C01 zh-hans 2713 | U+8C03 zh-hans 2714 | U+8C05 zh-hans 2715 | U+8C08 zh-hans 2716 | U+8C0A-U+8C0B zh-hans 2717 | U+8C13 zh-hans 2718 | U+8C1C zh-hans 2719 | U+8C22 zh-hans 2720 | U+8C28 zh-hans 2721 | U+8C31 zh-hans 2722 | U+8D1D-U+8D1F zh-hans 2723 | U+8D21-U+8D25 zh-hans 2724 | U+8D27-U+8D2A zh-hans 2725 | U+8D2D zh-hans 2726 | U+8D2F zh-hans 2727 | U+8D31 zh-hans 2728 | U+8D34-U+8D35 zh-hans 2729 | U+8D38-U+8D3A zh-hans 2730 | U+8D3C zh-hans 2731 | U+8D3E zh-hans 2732 | U+8D44 zh-hans 2733 | U+8D4B-U+8D4C zh-hans 2734 | U+8D4F-U+8D50 zh-hans 2735 | U+8D54 zh-hans 2736 | U+8D56 zh-hans 2737 | U+8D5A-U+8D5B zh-hans 2738 | U+8D5E zh-hans 2739 | U+8D60 zh-hans 2740 | U+8D62 zh-hans 2741 | U+8D6B zh-hans zh-hant 2742 | U+8D75 zh-hans 2743 | U+8D81 zh-hans 2744 | U+8D8A-U+8D8B zh-hans 2745 | U+8DC3 zh-hans 2746 | U+8DCC zh-hans zh-hant 2747 | U+8DD1 zh-hans zh-hant 2748 | U+8DDF zh-hans zh-hant 2749 | U+8E22 zh-hans zh-hant 2750 | U+8E29 zh-hans 2751 | U+8EB2 zh-hans zh-hant 2752 | U+8F66 zh-hans 2753 | U+8F68-U+8F69 zh-hans 2754 | U+8F6C zh-hans 2755 | U+8F6E-U+8F70 zh-hans 2756 | U+8F7B zh-hans 2757 | U+8F7D zh-hans 2758 | U+8F83 zh-hans 2759 | U+8F85-U+8F86 zh-hans 2760 | U+8F88-U+8F89 zh-hans 2761 | U+8F91 zh-hans 2762 | U+8F93 zh-hans 2763 | U+8FA8-U+8FA9 zh-hans 2764 | U+8FB0-U+8FB1 zh-hans 2765 | U+8FB9 zh-hans 2766 | U+8FBE zh-hans 2767 | U+8FC1 zh-hans 2768 | U+8FC7-U+8FC8 zh-hans 2769 | U+8FD0-U+8FD1 zh-hans 2770 | U+8FD8-U+8FD9 zh-hans 2771 | U+8FDB-U+8FDF zh-hans 2772 | U+8FE6 zh-hans zh-hant 2773 | U+8FEA-U+8FEB zh-hans zh-hant 2774 | U+9000-U+9003 zh-hans 2775 | U+9009-U+900A zh-hans 2776 | U+9012 zh-hans 2777 | U+9014 zh-hans zh-hant 2778 | U+901A-U+901B zh-hans 2779 | U+9022 zh-hans 2780 | U+903B-U+903C zh-hans 2781 | U+904D zh-hans 2782 | U+9053 zh-hans 2783 | U+9057 zh-hans 2784 | U+907F-U+9080 zh-hans 2785 | U+9093 zh-hans 2786 | U+90AE zh-hans 2787 | U+90B1 zh-hans zh-hant 2788 | U+90BB zh-hans 2789 | U+90D1 zh-hans 2790 | U+9102 zh-hans zh-hant 2791 | U+9149 zh-hans zh-hant 2792 | U+914B zh-hans 2793 | U+914D zh-hans zh-hant 2794 | U+9189 zh-hans zh-hant 2795 | U+91C7 zh-hans zh-hant 2796 | U+91CA zh-hans 2797 | U+9488 zh-hans 2798 | U+9493 zh-hans 2799 | U+949F zh-hans 2800 | U+94A2 zh-hans 2801 | U+94A6 zh-hans 2802 | U+94B1 zh-hans 2803 | U+94BB zh-hans 2804 | U+94C1 zh-hans 2805 | U+94C3 zh-hans 2806 | U+94DC zh-hans 2807 | U+94E2 zh-hans 2808 | U+94ED zh-hans 2809 | U+94F6 zh-hans 2810 | U+94FA zh-hans 2811 | U+94FE zh-hans 2812 | U+9500-U+9501 zh-hans 2813 | U+9505 zh-hans 2814 | U+950B zh-hans 2815 | U+9519 zh-hans 2816 | U+9521 zh-hans 2817 | U+9526 zh-hans 2818 | U+952E zh-hans 2819 | U+953A zh-hans 2820 | U+9547 zh-hans 2821 | U+955C zh-hans 2822 | U+956D zh-hans 2823 | U+957F zh-hans 2824 | U+95E8 zh-hans 2825 | U+95EA zh-hans 2826 | U+95ED-U+95EE zh-hans 2827 | U+95F0 zh-hans 2828 | U+95F2 zh-hans 2829 | U+95F4 zh-hans 2830 | U+95F7 zh-hans 2831 | U+95F9 zh-hans 2832 | U+95FB zh-hans 2833 | U+9601 zh-hans 2834 | U+9605 zh-hans 2835 | U+9610 zh-hans 2836 | U+9614 zh-hans 2837 | U+961F zh-hans 2838 | U+962E zh-hans 2839 | U+9632-U+9636 zh-hans 2840 | U+963F-U+9640 zh-hans zh-hant 2841 | U+9644-U+9646 zh-hans 2842 | U+9648 zh-hans 2843 | U+9662 zh-hans 2844 | U+9664 zh-hans 2845 | U+9669-U+966A zh-hans 2846 | U+9675-U+9677 zh-hans 2847 | U+9686 zh-hans zh-hant 2848 | U+968F-U+9690 zh-hans 2849 | U+969C zh-hans 2850 | U+96BE zh-hans 2851 | U+96C4-U+96C6 zh-hans zh-hant 2852 | U+96C9 zh-hans zh-hant 2853 | U+96EF zh-hans 2854 | U+96F3 zh-hans 2855 | U+96FE zh-hans 2856 | U+970D zh-hans zh-hant 2857 | U+9716 zh-hans 2858 | U+9738-U+9739 zh-hans zh-hant 2859 | U+9756 zh-hans zh-hant 2860 | U+9760 zh-hans zh-hant 2861 | U+977C zh-hans zh-hant 2862 | U+978B zh-hans zh-hant 2863 | U+9791 zh-hans 2864 | U+97E6 zh-hans 2865 | U+97E9 zh-hans 2866 | U+9875-U+9876 zh-hans 2867 | U+9879-U+987B zh-hans 2868 | U+987D-U+987F zh-hans 2869 | U+9884 zh-hans 2870 | U+9886-U+9887 zh-hans 2871 | U+9891 zh-hans 2872 | U+9897-U+9898 zh-hans 2873 | U+989D zh-hans 2874 | U+98CE zh-hans 2875 | U+98D8-U+98D9 zh-hans 2876 | U+98DE-U+98DF zh-hans 2877 | U+9910 zh-hans zh-hant 2878 | U+996D-U+996E zh-hans 2879 | U+9970-U+9971 zh-hans 2880 | U+997C zh-hans 2881 | U+9986 zh-hans 2882 | U+99A8 zh-hans 2883 | U+9A6C zh-hans 2884 | U+9A71 zh-hans 2885 | U+9A76 zh-hans 2886 | U+9A7B zh-hans 2887 | U+9A7E zh-hans 2888 | U+9A8C zh-hans 2889 | U+9A91 zh-hans 2890 | U+9A97 zh-hans 2891 | U+9A9A zh-hans 2892 | U+9AA4 zh-hans 2893 | U+9C7C zh-hans 2894 | U+9C81 zh-hans 2895 | U+9C9C zh-hans 2896 | U+9E1F zh-hans 2897 | U+9E21 zh-hans 2898 | U+9E23 zh-hans 2899 | U+9E2D zh-hans 2900 | U+9E3F zh-hans 2901 | U+9E45 zh-hans 2902 | U+9E64 zh-hans 2903 | U+9E70 zh-hans 2904 | U+9EBB zh-hans 2905 | U+9ECE zh-hans zh-hant 2906 | U+9ED1 zh-hans zh-hant 2907 | U+9ED8 zh-hans zh-hant 2908 | U+9F20 zh-hans zh-hant 2909 | U+9F50 zh-hans 2910 | U+9F7F zh-hans 2911 | U+9F84 zh-hans 2912 | U+9F99 zh-hans 2913 | U+9F9F zh-hans 2914 | U+FE30-U+FE31 zh-hans 2915 | U+FE33-U+FE44 zh-hans 2916 | U+FE49-U+FE52 zh-hans zh-hant 2917 | U+FE54-U+FE57 zh-hans 2918 | U+FE59-U+FE61 zh-hans 2919 | U+FE63 zh-hans zh-hant 2920 | U+FE68 zh-hans zh-hant 2921 | U+FE6A-U+FE6B zh-hans zh-hant 2922 | U+4E08-U+4E0D zh-hant 2923 | U+4E1E-U+4E1F zh-hant 2924 | U+4E3B zh-hant 2925 | U+4E48 zh-hant 2926 | U+4E4B zh-hant 2927 | U+4E4E-U+4E4F zh-hant 2928 | U+4E5F zh-hant 2929 | U+4E82 zh-hant 2930 | U+4E88 zh-hant 2931 | U+4E8E zh-hant 2932 | U+4E9B zh-hant 2933 | U+4E9E zh-hant 2934 | U+4EA4-U+4EA6 zh-hant 2935 | U+4EA8 zh-hant 2936 | U+4EAB-U+4EAE zh-hant 2937 | U+4EC0-U+4EC1 zh-hant 2938 | U+4ECD zh-hant 2939 | U+4F10-U+4F11 zh-hant 2940 | U+4F19 zh-hant 2941 | U+4F48-U+4F49 zh-hant 2942 | U+4F4D-U+4F4F zh-hant 2943 | U+4F54-U+4F55 zh-hant 2944 | U+4F86 zh-hant 2945 | U+4FC2-U+4FC4 zh-hant 2946 | U+4FE0-U+4FE1 zh-hant 2947 | U+5011-U+5012 zh-hant 2948 | U+5074-U+5077 zh-hant 2949 | U+5080 zh-hant 2950 | U+5099 zh-hant 2951 | U+50A2-U+50A3 zh-hant 2952 | U+50B2-U+50B3 zh-hant 2953 | U+50CE-U+50CF zh-hant 2954 | U+50D1 zh-hant 2955 | U+50F5 zh-hant 2956 | U+50F9 zh-hant 2957 | U+5110 zh-hant 2958 | U+5118 zh-hant 2959 | U+5133 zh-hant 2960 | U+5137 zh-hant 2961 | U+513B zh-hant 2962 | U+5143-U+5145 zh-hant 2963 | U+5147-U+5149 zh-hant 2964 | U+5152 zh-hant 2965 | U+5167-U+5169 zh-hant 2966 | U+5175-U+5178 zh-hant 2967 | U+51F0-U+51F1 zh-hant 2968 | U+51FA zh-hant 2969 | U+5229-U+522A zh-hant 2970 | U+5236-U+5237 zh-hant 2971 | U+524C-U+524D zh-hant 2972 | U+5283 zh-hant 2973 | U+5289 zh-hant 2974 | U+528D zh-hant 2975 | U+52A9-U+52AB zh-hant 2976 | U+52C1 zh-hant 2977 | U+52D9 zh-hant 2978 | U+52DD-U+52DE zh-hant 2979 | U+52F5 zh-hant 2980 | U+52F8 zh-hant 2981 | U+52FF zh-hant 2982 | U+5339 zh-hant 2983 | U+5340-U+5341 zh-hant 2984 | U+5352-U+5354 zh-hant 2985 | U+5357 zh-hant 2986 | U+535C zh-hant 2987 | U+5361 zh-hant 2988 | U+5373 zh-hant 2989 | U+537B zh-hant 2990 | U+53AD zh-hant 2991 | U+53B2 zh-hant 2992 | U+53C3 zh-hant 2993 | U+53CA-U+53CB zh-hant 2994 | U+53CD zh-hant 2995 | U+53E2-U+53E6 zh-hant 2996 | U+53F8 zh-hant 2997 | U+5410-U+5412 zh-hant 2998 | U+541D-U+5420 zh-hant 2999 | U+5433 zh-hant 3000 | U+54A6-U+54A7 zh-hant 3001 | U+54CE zh-hant 3002 | U+5514 zh-hant 3003 | U+5537-U+5538 zh-hant 3004 | U+555F zh-hant 3005 | U+55AC zh-hant 3006 | U+55AE zh-hant 3007 | U+55CE zh-hant 3008 | U+55DA zh-hant 3009 | U+5617 zh-hant 3010 | U+56B4 zh-hant 3011 | U+56C9 zh-hant 3012 | U+56CC zh-hant 3013 | U+56D1 zh-hant 3014 | U+570B zh-hant 3015 | U+570D zh-hant 3016 | U+5712-U+5713 zh-hant 3017 | U+5716 zh-hant 3018 | U+5718 zh-hant 3019 | U+571C zh-hant 3020 | U+5750 zh-hant 3021 | U+5875 zh-hant 3022 | U+58AE zh-hant 3023 | U+58D3 zh-hant 3024 | U+58D8 zh-hant 3025 | U+58DE zh-hant 3026 | U+58E2 zh-hant 3027 | U+58EF zh-hant 3028 | U+58FD zh-hant 3029 | U+5920 zh-hant 3030 | U+5937-U+5938 zh-hant 3031 | U+593E zh-hant 3032 | U+594E-U+594F zh-hant 3033 | U+5957 zh-hant 3034 | U+5967 zh-hant 3035 | U+599D zh-hant 3036 | U+59B3 zh-hant 3037 | U+5A03 zh-hant 3038 | U+5A1B zh-hant 3039 | U+5A41 zh-hant 3040 | U+5ABD zh-hant 3041 | U+5B78 zh-hant 3042 | U+5B97-U+5B9C zh-hant 3043 | U+5BB3 zh-hant 3044 | U+5BC4-U+5BC6 zh-hant 3045 | U+5BDE-U+5BDF zh-hant 3046 | U+5BE2 zh-hant 3047 | U+5BE6-U+5BE9 zh-hant 3048 | U+5BEB-U+5BEC zh-hant 3049 | U+5BF5-U+5BF6 zh-hant 3050 | U+5C07-U+5C08 zh-hant 3051 | U+5C0A-U+5C0B zh-hant 3052 | U+5C0D-U+5C0F zh-hant 3053 | U+5C3C zh-hant 3054 | U+5C3E zh-hant 3055 | U+5C40-U+5C41 zh-hant 3056 | U+5C45-U+5C46 zh-hant 3057 | U+5C64 zh-hant 3058 | U+5C6C zh-hant 3059 | U+5CFD zh-hant 3060 | U+5D19 zh-hant 3061 | U+5DBA zh-hant 3062 | U+5E1B zh-hant 3063 | U+5E36 zh-hant 3064 | U+5E6B zh-hant 3065 | U+5E87 zh-hant 3066 | U+5E9A zh-hant 3067 | U+5EE0 zh-hant 3068 | U+5EE2-U+5EE3 zh-hant 3069 | U+5EF3 zh-hant 3070 | U+5F26 zh-hant 3071 | U+5F48 zh-hant 3072 | U+5F4A zh-hant 3073 | U+5F4C zh-hant 3074 | U+5F4E zh-hant 3075 | U+5F5D-U+5F5E zh-hant 3076 | U+5F65 zh-hant 3077 | U+5F85 zh-hant 3078 | U+5F90-U+5F92 zh-hant 3079 | U+5F9E zh-hant 3080 | U+5FA9 zh-hant 3081 | U+6046 zh-hant 3082 | U+6085 zh-hant 3083 | U+60B6 zh-hant 3084 | U+60E0-U+60E1 zh-hant 3085 | U+60F1 zh-hant 3086 | U+614B zh-hant 3087 | U+6158 zh-hant 3088 | U+617E zh-hant 3089 | U+6190-U+6191 zh-hant 3090 | U+61C9 zh-hant 3091 | U+61F6-U+61F7 zh-hant 3092 | U+61FC zh-hant 3093 | U+6200 zh-hant 3094 | U+6230 zh-hant 3095 | U+6232 zh-hant 3096 | U+6236 zh-hant 3097 | U+6265 zh-hant 3098 | U+626D zh-hant 3099 | U+626F zh-hant 3100 | U+62C6 zh-hant 3101 | U+62CB zh-hant 3102 | U+62CF zh-hant 3103 | U+6372 zh-hant 3104 | U+6416 zh-hant 3105 | U+6436 zh-hant 3106 | U+6490 zh-hant 3107 | U+64A3 zh-hant 3108 | U+64A5 zh-hant 3109 | U+64BE-U+64BF zh-hant 3110 | U+64C7 zh-hant 3111 | U+64CA-U+64CB zh-hant 3112 | U+64D4 zh-hant 3113 | U+64DA zh-hant 3114 | U+64E0 zh-hant 3115 | U+64F4 zh-hant 3116 | U+64FA zh-hant 3117 | U+64FE zh-hant 3118 | U+651D zh-hant 3119 | U+654D zh-hant 3120 | U+6557-U+6559 zh-hant 3121 | U+6578 zh-hant 3122 | U+65B7 zh-hant 3123 | U+65E5-U+65E6 zh-hant 3124 | U+65E9 zh-hant 3125 | U+6649 zh-hant 3126 | U+6652 zh-hant 3127 | U+66C6 zh-hant 3128 | U+66C9 zh-hant 3129 | U+66F8 zh-hant 3130 | U+6703 zh-hant 3131 | U+676F-U+6771 zh-hant 3132 | U+689D zh-hant 3133 | U+694A zh-hant 3134 | U+6953 zh-hant 3135 | U+69AE zh-hant 3136 | U+69CD zh-hant 3137 | U+6A02 zh-hant 3138 | U+6A13 zh-hant 3139 | U+6A1E zh-hant 3140 | U+6A23 zh-hant 3141 | U+6A6B zh-hant 3142 | U+6A94 zh-hant 3143 | U+6AA2 zh-hant 3144 | U+6B0A zh-hant 3145 | U+6B21 zh-hant 3146 | U+6B23 zh-hant 3147 | U+6B3D-U+6B3E zh-hant 3148 | U+6B50 zh-hant 3149 | U+6B61-U+6B66 zh-hant 3150 | U+6B72 zh-hant 3151 | U+6B77-U+6B78 zh-hant 3152 | U+6B8A zh-hant 3153 | U+6B98 zh-hant 3154 | U+6BBA zh-hant 3155 | U+6BBC zh-hant 3156 | U+6BC0 zh-hant 3157 | U+6C23 zh-hant 3158 | U+6C92 zh-hant 3159 | U+6CE1-U+6CE2 zh-hant 3160 | U+6D29-U+6D2A zh-hant 3161 | U+6D87-U+6D89 zh-hant 3162 | U+6DDA zh-hant 3163 | U+6DE8 zh-hant 3164 | U+6DFA zh-hant 3165 | U+6EAA-U+6EAB zh-hant 3166 | U+6EC4-U+6EC5 zh-hant 3167 | U+6EFE-U+6EFF zh-hant 3168 | U+6F32 zh-hant 3169 | U+6F5B zh-hant 3170 | U+6FA4 zh-hant 3171 | U+6FDF zh-hant 3172 | U+6FE4 zh-hant 3173 | U+6FF1 zh-hant 3174 | U+700F zh-hant 3175 | U+7063 zh-hant 3176 | U+7070 zh-hant 3177 | U+70B8 zh-hant 3178 | U+70BA zh-hant 3179 | U+70CF zh-hant 3180 | U+71C8 zh-hant 3181 | U+71D2 zh-hant 3182 | U+71DF zh-hant 3183 | U+7210 zh-hant 3184 | U+721B zh-hant 3185 | U+722C-U+722D zh-hant 3186 | U+7238 zh-hant 3187 | U+723A zh-hant 3188 | U+723D-U+723E zh-hant 3189 | U+7246-U+7248 zh-hant 3190 | U+7260 zh-hant 3191 | U+727D zh-hant 3192 | U+72A7 zh-hant 3193 | U+72C0 zh-hant 3194 | U+7344-U+7345 zh-hant 3195 | U+734E zh-hant 3196 | U+7368 zh-hant 3197 | U+7378 zh-hant 3198 | U+737B zh-hant 3199 | U+73E5 zh-hant 3200 | U+7409 zh-hant 3201 | U+7464 zh-hant 3202 | U+746A zh-hant 3203 | U+7522 zh-hant 3204 | U+7562 zh-hant 3205 | U+756A-U+756B zh-hant 3206 | U+7576 zh-hant 3207 | U+760B zh-hant 3208 | U+7661 zh-hant 3209 | U+767B-U+767E zh-hant 3210 | U+76C3 zh-hant 3211 | U+76DB-U+76DC zh-hant 3212 | U+76E1 zh-hant 3213 | U+76E7 zh-hant 3214 | U+773E zh-hant 3215 | U+77AD zh-hant 3216 | U+788E zh-hant 3217 | U+78A9 zh-hant 3218 | U+78BC zh-hant 3219 | U+78EF zh-hant 3220 | U+7919 zh-hant 3221 | U+7955-U+7956 zh-hant 3222 | U+795A-U+795B zh-hant 3223 | U+797F zh-hant 3224 | U+798D-U+798F zh-hant 3225 | U+79AA zh-hant 3226 | U+79AE zh-hant 3227 | U+7A05 zh-hant 3228 | U+7A0D zh-hant 3229 | U+7A31 zh-hant 3230 | U+7A4C-U+7A4D zh-hant 3231 | U+7A69 zh-hant 3232 | U+7AA9 zh-hant 3233 | U+7AAE zh-hant 3234 | U+7AB6 zh-hant 3235 | U+7ADF-U+7AE0 zh-hant 3236 | U+7C2B zh-hant 3237 | U+7C3D zh-hant 3238 | U+7C43 zh-hant 3239 | U+7C4C-U+7C4D zh-hant 3240 | U+7C64 zh-hant 3241 | U+7CB5 zh-hant 3242 | U+7CD5 zh-hant 3243 | U+7D10 zh-hant 3244 | U+7D39 zh-hant 3245 | U+7D55 zh-hant 3246 | U+7D71-U+7D72 zh-hant 3247 | U+7D93 zh-hant 3248 | U+7D9C zh-hant 3249 | U+7DA0 zh-hant 3250 | U+7DD2 zh-hant 3251 | U+7DE3 zh-hant 3252 | U+7DEC zh-hant 3253 | U+7E23 zh-hant 3254 | U+7E31 zh-hant 3255 | U+7E3D-U+7E3E zh-hant 3256 | U+7E46 zh-hant 3257 | U+7E54 zh-hant 3258 | U+7E5E zh-hant 3259 | U+7E6A zh-hant 3260 | U+7E73 zh-hant 3261 | U+7E7C zh-hant 3262 | U+7E8C zh-hant 3263 | U+7FA9 zh-hant 3264 | U+7FF9 zh-hant 3265 | U+806F-U+8070 zh-hant 3266 | U+8072 zh-hant 3267 | U+807D zh-hant 3268 | U+812B zh-hant 3269 | U+8153-U+8154 zh-hant 3270 | U+8166 zh-hant 3271 | U+8173 zh-hant 3272 | U+817F zh-hant 3273 | U+81BD zh-hant 3274 | U+81C9 zh-hant 3275 | U+81D8 zh-hant 3276 | U+81E5 zh-hant 3277 | U+81FA zh-hant 3278 | U+8207-U+820A zh-hant 3279 | U+82AC zh-hant 3280 | U+8305 zh-hant 3281 | U+8332 zh-hant 3282 | U+837C zh-hant 3283 | U+8389-U+838A zh-hant 3284 | U+83AB zh-hant 3285 | U+840A zh-hant 3286 | U+842C zh-hant 3287 | U+84B2 zh-hant 3288 | U+84BC zh-hant 3289 | U+84EE zh-hant 3290 | U+8515 zh-hant 3291 | U+8523 zh-hant 3292 | U+856D zh-hant 3293 | U+85A9-U+85AA zh-hant 3294 | U+85DD zh-hant 3295 | U+85E4-U+85E5 zh-hant 3296 | U+8606-U+8607 zh-hant 3297 | U+862D zh-hant 3298 | U+8655 zh-hant 3299 | U+865B zh-hant 3300 | U+865F zh-hant 3301 | U+8667 zh-hant 3302 | U+87A2 zh-hant 3303 | U+87F2 zh-hant 3304 | U+880D zh-hant 3305 | U+883B zh-hant 3306 | U+88DC-U+88DD zh-hant 3307 | U+88E1 zh-hant 3308 | U+88FD zh-hant 3309 | U+8932 zh-hant 3310 | U+89BA zh-hant 3311 | U+89BD zh-hant 3312 | U+89C0 zh-hant 3313 | U+89F8 zh-hant 3314 | U+8A02 zh-hant 3315 | U+8A0A zh-hant 3316 | U+8A25 zh-hant 3317 | U+8A34 zh-hant 3318 | U+8A3B-U+8A3C zh-hant 3319 | U+8A55 zh-hant 3320 | U+8A62 zh-hant 3321 | U+8A71-U+8A73 zh-hant 3322 | U+8AAA zh-hant 3323 | U+8ABC zh-hant 3324 | U+8AD2 zh-hant 3325 | U+8AFA zh-hant 3326 | U+8B00 zh-hant 3327 | U+8B02 zh-hant 3328 | U+8B49 zh-hant 3329 | U+8B6F-U+8B70 zh-hant 3330 | U+8B7D zh-hant 3331 | U+8B80 zh-hant 3332 | U+8B8A zh-hant 3333 | U+8B93 zh-hant 3334 | U+8B9A zh-hant 3335 | U+8C48 zh-hant 3336 | U+8C50 zh-hant 3337 | U+8C6C zh-hant 3338 | U+8C93 zh-hant 3339 | U+8CA8 zh-hant 3340 | U+8CAA-U+8CAC zh-hant 3341 | U+8CB7 zh-hant 3342 | U+8CC0 zh-hant 3343 | U+8CC7-U+8CC8 zh-hant 3344 | U+8CDC zh-hant 3345 | U+8CE2-U+8CE4 zh-hant 3346 | U+8CF4 zh-hant 3347 | U+8CFA zh-hant 3348 | U+8CFC-U+8CFD zh-hant 3349 | U+8D0A zh-hant 3350 | U+8D0F zh-hant 3351 | U+8D95 zh-hant 3352 | U+8D99 zh-hant 3353 | U+8DA8 zh-hant 3354 | U+8DCE zh-hant 3355 | U+8E5F zh-hant 3356 | U+8E64 zh-hant 3357 | U+8F14-U+8F15 zh-hant 3358 | U+8F1B zh-hant 3359 | U+8F2F zh-hant 3360 | U+8F49 zh-hant 3361 | U+8F5F zh-hant 3362 | U+8FA6 zh-hant 3363 | U+8FA8 zh-hant 3364 | U+8FAD zh-hant 3365 | U+8FAF-U+8FB2 zh-hant 3366 | U+8FF4 zh-hant 3367 | U+9019-U+901B zh-hant 3368 | U+9022-U+9023 zh-hant 3369 | U+903C zh-hant 3370 | U+9059 zh-hant 3371 | U+9060 zh-hant 3372 | U+9072 zh-hant 3373 | U+907F-U+9081 zh-hant 3374 | U+908A zh-hant 3375 | U+908F zh-hant 3376 | U+9109 zh-hant 3377 | U+912D zh-hant 3378 | U+9130 zh-hant 3379 | U+91AB zh-hant 3380 | U+91CB-U+91CF zh-hant 3381 | U+91DD zh-hant 3382 | U+9296 zh-hant 3383 | U+92B3 zh-hant 3384 | U+92B7 zh-hant 3385 | U+92D2 zh-hant 3386 | U+9304 zh-hant 3387 | U+9322 zh-hant 3388 | U+932B zh-hant 3389 | U+932F zh-hant 3390 | U+937E zh-hant 3391 | U+938A zh-hant 3392 | U+9435 zh-hant 3393 | U+9583 zh-hant 3394 | U+958F zh-hant 3395 | U+9592-U+9593 zh-hant 3396 | U+95A3 zh-hant 3397 | U+95B1 zh-hant 3398 | U+95C6 zh-hant 3399 | U+95CA zh-hant 3400 | U+95CD zh-hant 3401 | U+95D0 zh-hant 3402 | U+95DC zh-hant 3403 | U+95E1 zh-hant 3404 | U+9662-U+9664 zh-hant 3405 | U+9675-U+9678 zh-hant 3406 | U+968E zh-hant 3407 | U+96A8 zh-hant 3408 | U+96AA zh-hant 3409 | U+96B1 zh-hant 3410 | U+96D6 zh-hant 3411 | U+96D9 zh-hant 3412 | U+96DC zh-hant 3413 | U+96DE zh-hant 3414 | U+9742 zh-hant 3415 | U+9748 zh-hant 3416 | U+975C zh-hant 3417 | U+97C3 zh-hant 3418 | U+97CB zh-hant 3419 | U+9801-U+9802 zh-hant 3420 | U+9810-U+9811 zh-hant 3421 | U+9813 zh-hant 3422 | U+9817-U+9818 zh-hant 3423 | U+981E zh-hant 3424 | U+982D zh-hant 3425 | U+983B zh-hant 3426 | U+9846 zh-hant 3427 | U+984C-U+984D zh-hant 3428 | U+984F zh-hant 3429 | U+986F zh-hant 3430 | U+98C4 zh-hant 3431 | U+98FD-U+98FE zh-hant 3432 | U+9918 zh-hant 3433 | U+99D5 zh-hant 3434 | U+99DB zh-hant 3435 | U+9A19 zh-hant 3436 | U+9A37 zh-hant 3437 | U+9A45 zh-hant 3438 | U+9A57 zh-hant 3439 | U+9AD4 zh-hant 3440 | U+9AEE zh-hant 3441 | U+9B06 zh-hant 3442 | U+9B25 zh-hant 3443 | U+9B27 zh-hant 3444 | U+9B41-U+9B42 zh-hant 3445 | U+9B6F zh-hant 3446 | U+9CF3-U+9CF4 zh-hant 3447 | U+9D3B zh-hant 3448 | U+9D5D zh-hant 3449 | U+9DF9 zh-hant 3450 | U+9EA5 zh-hant 3451 | U+9EB5 zh-hant 3452 | U+9EBB-U+9EBC zh-hant 3453 | U+9EC3 zh-hant 3454 | U+9EDE zh-hant 3455 | U+9EE8 zh-hant 3456 | U+9F4A-U+9F4B zh-hant 3457 | U+9F52 zh-hant 3458 | U+9F61 zh-hant 3459 | U+9F8D zh-hant 3460 | U+9F9C zh-hant 3461 | U+FE30-U+FE44 zh-hant 3462 | U+FE54-U+FE61 zh-hant 3463 | -------------------------------------------------------------------------------- /fastlangid/regex_rule.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | 4 | 5 | UNICODE_MAPPING_FILE = os.path.join(os.path.dirname(__file__), 'models', 'unicode_lang.dict') 6 | 7 | def convert2unicode(code): 8 | code_list = code.split('-') 9 | output_code = [] 10 | for _unicode in code_list: 11 | if 'U+' in _unicode: 12 | code = _unicode.split('U+')[1] 13 | code = '0'*(4-len(code))+code 14 | _unicode = fr'\u{code}' 15 | output_code.append(_unicode) 16 | return '-'.join(output_code) 17 | 18 | 19 | def init_dict(): 20 | language2regex_list = {} 21 | with open(UNICODE_MAPPING_FILE, 'r') as f: 22 | for line in f: 23 | data = line.rstrip() 24 | tokens = data.split('\t') 25 | unicode, languages = tokens[0], tokens[1:] 26 | for lang in languages: 27 | if lang not in language2regex_list: 28 | language2regex_list[lang] = [] 29 | language2regex_list[lang].append(convert2unicode(unicode)) 30 | 31 | lang_regex = {} 32 | for lang, regex_block in language2regex_list.items(): 33 | lang_regex[lang] = re.compile('[{}]'.format('|'.join(regex_block))) 34 | 35 | return lang_regex 36 | 37 | 38 | lang2regex = init_dict() 39 | 40 | def find_matched_language(text): 41 | matched_lang = [] 42 | text_len = len(text) 43 | if text_len == 0: 44 | return matched_lang 45 | 46 | for lang, char_reg in lang2regex.items(): 47 | if char_reg.search(text) is not None: 48 | matched_char = len(char_reg.findall(text)) 49 | fast_lang = lang 50 | if lang[:2] == 'zh': 51 | fast_lang = 'zh' 52 | matched_lang.append((lang, matched_char/ text_len, fast_lang )) 53 | 54 | if len(matched_lang) == 0: 55 | return matched_lang 56 | 57 | return sorted(matched_lang, key= lambda x:x[1], reverse=True) 58 | -------------------------------------------------------------------------------- /fastlangid/utils.py: -------------------------------------------------------------------------------- 1 | import re 2 | import os 3 | 4 | symbol_removal = re.compile(r"[.\!?,'/()。,,;:\–‘\-\[\]【】|~、…「」“”《》=——+~!@#$%⋯⋯&*()\n\t]") 5 | RAW_CONTENT_CLEANER = re.compile(r"#video_container #my-video{width:100%;padding-bottom:56.25%; height:56.25%;}|\[embedded content\]|Newsfrom Japan") 6 | WHITE_SPACE_CLEANER = [ 7 | (re.compile(r"\s\s+"), " "), 8 | (re.compile(r"\n+"), "\n\n"), 9 | (re.compile(r"\t+"), "\t\t"), 10 | ] 11 | HTML_CLEANER = re.compile(r'<.*?>') 12 | 13 | 14 | def clean_text(text): 15 | 16 | results = re.sub(RAW_CONTENT_CLEANER, "", str(text)) 17 | results = re.sub(HTML_CLEANER, "", results) 18 | results = results.strip() 19 | for regex_match, replace_token in WHITE_SPACE_CLEANER: 20 | results = re.sub(regex_match, replace_token, results) 21 | return results 22 | 23 | UNK_CLS = '' 24 | 25 | with open(os.path.join(os.path.dirname(__file__), 'models', 'punc.dict'), 'r', encoding='utf-8') as f: 26 | PUNCTUATION = set(list(f.read().strip())) 27 | 28 | def only_punctuations(text): 29 | for char in set(text): 30 | if char not in PUNCTUATION: 31 | return False 32 | return True 33 | 34 | UNCERTAIN_SETS = set(('zh', 'ko', 'ja')) 35 | 36 | CHINESE_FAMILY_CODES = set(('zh-hant', 'zh-hans', 'zh-yue')) 37 | 38 | 39 | REGEX_NOT_SUPPORT = set(['af', 40 | 'als', 41 | 'am', 42 | 'an', 43 | 'arz', 44 | 'as', 45 | 'ast', 46 | 'av', 47 | 'az', 48 | 'azb', 49 | 'ba', 50 | 'bar', 51 | 'bcl', 52 | 'bh', 53 | 'bn', 54 | 'bo', 55 | 'bpy', 56 | 'br', 57 | 'bs', 58 | 'bxr', 59 | 'ca', 60 | 'cbk', 61 | 'ce', 62 | 'ceb', 63 | 'ckb', 64 | 'co', 65 | 'cs', 66 | 'cv', 67 | 'cy', 68 | 'da', 69 | 'diq', 70 | 'dsb', 71 | 'dty', 72 | 'dv', 73 | 'el', 74 | 'eml', 75 | 'eo', 76 | 'et', 77 | 'eu', 78 | 'fa', 79 | 'fi', 80 | 'frr', 81 | 'fy', 82 | 'ga', 83 | 'gd', 84 | 'gl', 85 | 'gn', 86 | 'gom', 87 | 'gu', 88 | 'gv', 89 | 'he', 90 | 'hi', 91 | 'hif', 92 | 'hr', 93 | 'hsb', 94 | 'ht', 95 | 'hu', 96 | 'hy', 97 | 'ia', 98 | 'ie', 99 | 'ilo', 100 | 'io', 101 | 'is', 102 | 'jbo', 103 | 'jv', 104 | 'ka', 105 | 'km', 106 | 'kn', 107 | 'krc', 108 | 'ku', 109 | 'kv', 110 | 'kw', 111 | 'la', 112 | 'lb', 113 | 'lez', 114 | 'li', 115 | 'lmo', 116 | 'lo', 117 | 'lrc', 118 | 'lt', 119 | 'lv', 120 | 'mai', 121 | 'mg', 122 | 'mhr', 123 | 'min', 124 | 'ml', 125 | 'mn', 126 | 'mr', 127 | 'mrj', 128 | 'mt', 129 | 'mwl', 130 | 'my', 131 | 'myv', 132 | 'mzn', 133 | 'nah', 134 | 'nap', 135 | 'nds', 136 | 'ne', 137 | 'new', 138 | 'nl', 139 | 'nn', 140 | 'no', 141 | 'oc', 142 | 'or', 143 | 'os', 144 | 'pa', 145 | 'pam', 146 | 'pfl', 147 | 'pl', 148 | 'pms', 149 | 'pnb', 150 | 'ps', 151 | 'pt', 152 | 'qu', 153 | 'rm', 154 | 'ro', 155 | 'rue', 156 | 'sa', 157 | 'sah', 158 | 'sc', 159 | 'scn', 160 | 'sco', 161 | 'sd', 162 | 'sh', 163 | 'si', 164 | 'sk', 165 | 'sl', 166 | 'so', 167 | 'sq', 168 | 'su', 169 | 'sv', 170 | 'sw', 171 | 'ta', 172 | 'te', 173 | 'tg', 174 | 'tl', 175 | 'tr', 176 | 'tt', 177 | 'tyv', 178 | 'ug', 179 | 'ur', 180 | 'vec', 181 | 'vep', 182 | 'vls', 183 | 'vo', 184 | 'wa', 185 | 'war', 186 | 'wuu', 187 | 'xal', 188 | 'xmf', 189 | 'yi', 190 | 'yo', 191 | 'yue']) -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | description-file = README.md 3 | 4 | [bdist_wheel] 5 | universal=1 -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | ''' 2 | setup.py - a setup script 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 7 | Unless required by applicable law or agreed to in writing, software 8 | distributed under the License is distributed on an "AS IS" BASIS, 9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | See the License for the specific language governing permissions and 11 | limitations under the License. 12 | Authors: 13 | Ray : ray@currentsapi.services 14 | ''' 15 | from setuptools import setup 16 | 17 | try: 18 | from setuptools import setup 19 | except ImportError: 20 | from distutils.core import setup 21 | 22 | with open('LICENSE', 'r') as f: 23 | license_ = f.read() 24 | 25 | with open('README.md', 'r') as f: 26 | readme = f.read() 27 | 28 | setup( 29 | name='fastlangid', 30 | version='1.0.11', 31 | description='Language detection for news powered by fasttext', 32 | long_description=readme, 33 | long_description_content_type="text/markdown", 34 | author='Ray', 35 | author_email='ray@currentsapi.services', 36 | url='https://github.com/currentsapi/fastlangid', 37 | keywords='language detection library', 38 | packages=['fastlangid'], 39 | package_data={'fastlangid': ['fastlangid/*', 'models/*']}, 40 | include_package_data=True, 41 | install_requires=['fasttext'], 42 | license='Apache License 2.0', 43 | classifiers=[ 44 | 'Development Status :: 5 - Production/Stable', 45 | 'Intended Audience :: Developers', 46 | 'License :: OSI Approved :: Apache Software License', 47 | 'Operating System :: OS Independent', 48 | 'Programming Language :: Python :: 3', 49 | 'Programming Language :: Python :: 3.4', 50 | 'Programming Language :: Python :: 3.5', 51 | 'Programming Language :: Python :: 3.6', 52 | 'Programming Language :: Python :: 3.7', 53 | 'Programming Language :: Python :: 3.8', 54 | 'Programming Language :: Python :: 3.9', 55 | ] 56 | ) 57 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/currentslab/fastlangid/10cb4c30bdca170c5862b017174a7c4a6caee4f1/tests/__init__.py -------------------------------------------------------------------------------- /tests/fasttext_issues.py: -------------------------------------------------------------------------------- 1 | import fasttext 2 | import re 3 | 4 | model = fasttext.load_model('fastlangid/models/lid.176.ftz') 5 | 6 | def _clean_up(txt): 7 | txt = re.sub(r"\b\d+\b", "", txt) 8 | return txt 9 | print("These examples should equal to zh, however example 3,4,5 is equal to ja") 10 | # These examples should equal to zh, however example 3,4,5 is equal to ja 11 | # 1. 12 | print(model.predict(_clean_up("2K 也決定從 NVIDIA GeForce Now 平台撤出")), '== zh') 13 | # 2. 14 | print(model.predict(_clean_up("HTC推出VIVE Sync VR虛擬會議服務,攜中華電信完成三地VR會議")), '== zh') 15 | # 3. 16 | print(model.predict(_clean_up("HUAWEI真無線藍牙降噪耳機、穿戴新品齊發,HUAWEI FreeBuds 3搭配HUAWEI WATCH GT2加碼限定好禮!")), '== zh') 17 | # 4. 18 | print(model.predict(_clean_up("平嘢有冇好嘢?~$500真無線耳機評測 Sabbat E12 Ultra | Edifier TWS 5 | Soul ST-XX | 小米Air 2 【Price.com.hk產品比較】")), '== zh') 19 | # 5. 20 | print(model.predict(_clean_up("沈义人:OPPO Find X2系列缎黑等配色会逐渐补货,开售当日会加货")), '== zh') 21 | # 6. 22 | print(model.predict(_clean_up("iPhone 7成功刷入Android 10 蘋果控告技術擁有公司")), '== zh') 23 | 24 | print("Cascade Fasttext model") 25 | 26 | from fastlangid.langid import LID 27 | model = LID() 28 | # These examples should equal to zh, however example 3,4,5 is equal to ja 29 | # 1. 30 | print(model.predict(_clean_up("2K 也決定從 NVIDIA GeForce Now 平台撤出")), '== zh-hant') 31 | # 2. 32 | print(model.predict(_clean_up("HTC推出VIVE Sync VR虛擬會議服務,攜中華電信完成三地VR會議")), '== zh-hant') 33 | # 3. 34 | print(model.predict(_clean_up("HUAWEI真無線藍牙降噪耳機、穿戴新品齊發,HUAWEI FreeBuds 3搭配HUAWEI WATCH GT2加碼限定好禮!")), '== zh-hant') 35 | # 4. 36 | print(model.predict(_clean_up("平嘢有冇好嘢?~$500真無線耳機評測 Sabbat E12 Ultra | Edifier TWS 5 | Soul ST-XX | 小米Air 2 【Price.com.hk產品比較】")), '== zh-hant') 37 | # 5. 38 | print(model.predict(_clean_up("沈义人:OPPO Find X2系列缎黑等配色会逐渐补货,开售当日会加货")), '== zh-hans') 39 | # 6. 40 | print(model.predict(_clean_up("iPhone 7成功刷入Android 10 蘋果控告技術擁有公司")), '== zh-hant') 41 | -------------------------------------------------------------------------------- /tests/test_regex.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | from __future__ import division, unicode_literals 3 | from os import path 4 | import unittest 5 | 6 | from fastlangid.regex_rule import find_matched_language 7 | from fastlangid.langid import LID 8 | 9 | 10 | ZH_HANS = "分词就是将连续的字序列按照一定的规范重新组合成语义独立词序列的过程。" 11 | ZH_HANT = "分詞就是將連續的字序列按照一定的規範重新組合成詞語獨立的次序過程。" 12 | KO = "단어 분할은 연속적인 단어 시퀀스를 특정 사양에 따라 의미적으로 독립적인 단어 시퀀스로 재결합하는 프로세스입니다." 13 | JA = "単語のセグメンテーションは、特定の仕様に従って、連続する単語シーケンスを意味的に独立した単語シーケンスに再結合するプロセスです。" 14 | DE = "Deutsches Ipsum Dolor id latine Stuttgart complectitur pri, mea meliore denique Die Toten Hosen id. Elitr expetenda nam an, was machst du ei reque euismod assentior. Odio Autobahn iracundia ex pri. Ut vel bitte mandamus, quas natum adversarium ei Juttensack diam minim honestatis eum no" 15 | 16 | FA = "اوانز تو فقط يک هفته وقت داري وگرنه خونتو خواهيم سوزوند ." 17 | UG = "ھەممە ئادەم تۇغۇلۇشىدىنلا ئەركىن، ئىززەت۔ھۆرمەت ۋە ھوقۇقتا باب۔باراۋەر بولۇپ تۇغۇلغان. ئۇلار ئەقىلگە ۋە ۋىجدانغا ئىگە ھەمدە بىر۔بىرىگە قېرىنداشلىق مۇناسىۋىتىگە خاس روھ بىلەن مۇئامىلە قىلىشى كېرەك.‎" 18 | 19 | class RegexTest(unittest.TestCase): 20 | 21 | def test_format(self): 22 | output = find_matched_language(ZH_HANS) 23 | self.assertEqual(len(output) > 0, True) 24 | self.assertEqual(len(output[0]) == 3, True) 25 | 26 | def test_results(self): 27 | output = find_matched_language(ZH_HANS) 28 | encodings = [o[2] for o in output ] 29 | self.assertTrue( 'zh' in encodings ) 30 | encodings = [o[0] for o in output ] 31 | self.assertTrue( 'zh-hans' in encodings ) 32 | 33 | 34 | output = find_matched_language(ZH_HANT) 35 | encodings = [o[2] for o in output ] 36 | self.assertTrue( 'zh' in encodings ) 37 | encodings = [o[0] for o in output ] 38 | self.assertTrue( 'zh-hant' in encodings ) 39 | 40 | output = find_matched_language(KO) 41 | encodings = [o[2] for o in output ] 42 | self.assertTrue( 'ko' in encodings ) 43 | encodings = [o[0] for o in output ] 44 | self.assertTrue( 'ko' in encodings ) 45 | 46 | output = find_matched_language(JA) 47 | encodings = [o[2] for o in output ] 48 | self.assertTrue( 'ja' in encodings ) 49 | encodings = [o[0] for o in output ] 50 | self.assertTrue( 'ja' in encodings ) 51 | 52 | output = find_matched_language(DE) 53 | encodings = [o[2] for o in output ] 54 | self.assertTrue( 'de' in encodings ) 55 | encodings = [o[0] for o in output ] 56 | self.assertTrue( 'de' in encodings ) 57 | 58 | def test_regex_not_supported(self): 59 | ''' 60 | Ensure languages which is not supported in regex list 61 | are still output from fasttext 62 | ''' 63 | # urgu language is not inside regex chars 64 | langid = LID() 65 | 66 | self.assertTrue( langid.predict(UG) == 'ug' ) 67 | output = langid.predict(UG, k=5, prob=True) 68 | self.assertTrue('ug' in [o[0] for o in output]) 69 | self.assertTrue('ug' in langid.predict(UG, k=5, prob=False)) 70 | 71 | self.assertTrue( langid.predict(FA) == 'fa' ) 72 | output = langid.predict(FA, k=5, prob=True) 73 | self.assertTrue('fa' in [o[0] for o in output]) 74 | self.assertTrue('fa' in langid.predict(FA, k=5, prob=False)) 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /tests/testcases.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | from __future__ import division, unicode_literals 3 | from fastlangid.langid import LID 4 | from fastlangid.utils import UNK_CLS 5 | from os import path 6 | import unittest 7 | 8 | 9 | 10 | 11 | 12 | class FastLangIdTest(unittest.TestCase): 13 | 14 | def setUp(self): 15 | self.langid = LID() 16 | 17 | def test_model_present(self): 18 | self.assertEqual(path.isfile(self.langid.model_file), True) 19 | self.assertEqual(path.isfile(self.langid.sup_model_file), True) 20 | 21 | def test_single_prediction(self): 22 | 23 | lang_code = self.langid.predict('這是繁體字') 24 | self.assertEqual(lang_code, 'zh-hant' ) 25 | 26 | lang_code = self.langid.predict('简体中文') 27 | self.assertEqual(lang_code, 'zh-hans' ) 28 | 29 | lang_code = self.langid.predict('이것은 한국인입니다') 30 | self.assertEqual(lang_code, 'ko' ) 31 | 32 | def test_list_probs(self): 33 | lang_codes = self.langid.predict('這是繁體字', prob=True, k=5) 34 | self.assertTrue(isinstance(lang_codes, list)) 35 | self.assertEqual(lang_codes[0][0], 'zh-hant' ) 36 | 37 | lang_codes = self.langid.predict('the brown fox jumps over the lazy dog', prob=True, k=5) 38 | self.assertTrue(isinstance(lang_codes, list)) 39 | self.assertEqual(lang_codes[0][0], 'en' ) 40 | 41 | def test_for_equality(self): 42 | 43 | for name in ['小美', '小明', '老王','阿公', '陳美珍']: 44 | lang_code = self.langid.predict('{}決定要去購買新的項鍊'.format(name)) 45 | self.assertEqual(lang_code, 'zh-hant' ) 46 | 47 | for name in ['小美', '小明', '老王','阿公', '陈美珍']: 48 | lang_code = self.langid.predict('{}决定要去购买新的项链'.format(name)) 49 | self.assertEqual(lang_code, 'zh-hans' ) 50 | 51 | 52 | for name in ['Peter', 'Dmitri', 'Jonas','Rahul', 'Mohamed', 'Ali']: 53 | lang_code = self.langid.predict('{} is going to London this week'.format(name)) 54 | self.assertEqual(lang_code, 'en' ) 55 | 56 | 57 | def test_top_k(self): 58 | 59 | for name in ['Peter', 'Dmitri', 'Jonas','Rahul', 'Mohamed', 'Ali']: 60 | lang_code = self.langid.predict('{} is going to London this week'.format(name), k=5) 61 | self.assertEqual(len(lang_code), 5) 62 | for name in ['Peter', 'Dmitri', 'Jonas','Rahul', 'Mohamed', 'Ali']: 63 | lang_code = self.langid.predict('{} is going to London this week'.format(name), k=5, prob=True) 64 | self.assertEqual(len(lang_code), 5) 65 | 66 | for name in ['Peter', 'Dmitri', 'Jonas','Rahul', 'Mohamed', 'Ali']: 67 | lang_code_w_prob = self.langid.predict('{} is going to London this week'.format(name), k=1, prob=True) 68 | lang_code, prob = lang_code_w_prob 69 | self.assertEqual(len(lang_code_w_prob), 2) 70 | self.assertEqual(lang_code, 'en') 71 | 72 | 73 | def failed_test_case(self): 74 | sentences = [ 75 | '人為過度捕獵 鯊魚數量減少70%', 76 | 'The Fierce Vulnerability of DMX', 77 | 'M1 iPad Pro在台開賣!11吋台幣24900元起、12.9吋Mini LED款台幣34900元起', 78 | '《KDOQI慢性肾脏病营养实践指南2020更新版》专家谈', 79 | '宜蘭東門夜市砍人案起因是她 3高中生險遭誤砍!警快打逮1嫌 | ETtoday社會新聞', 80 | 'IG收私訊「兼職日進千元」私訊 男大生匯款遭「總裁」詐騙 | 蘋果新聞網 | 蘋果日報', 81 | 'LDH: COVID-19 cases total 380K', 82 | '【專欄】台積電來美設廠是榮耀也是義務', 83 | 'wwe-fastlane-live-stream-free-watch-online', 84 | 'HBL/嘉中羅楷翔文武雙全 乙級尋夢', 85 | 'RTX 3080 Ti 12GB傳將四月報到、RTX 3070 Ti 8GB則五月跟上' 86 | ] 87 | for sent in sentences: 88 | lang_code = self.langid.predict(sent, prob=True, k=10) 89 | self.assertEqual(lang_code, 'zh-hant' ) 90 | 91 | 92 | def test_edge_cases(self): 93 | # brand in test case sentences are fictional and created only for testing purposes 94 | 95 | 96 | lang_code = self.langid.predict('2K 也決定從 NZIDIA GeForze Then 平台撤出') 97 | self.assertEqual(lang_code, 'zh-hant' ) 98 | 99 | lang_code = self.langid.predict('GTC推出VIVE Synz AR虛擬會議服務,攜中X電信完成三地AR會議') 100 | self.assertEqual(lang_code, 'zh-hant' ) 101 | 102 | lang_code = self.langid.predict('XuaWEI真無線藍牙降噪耳機、穿戴新品齊發,XUAWEI FreeBeds 3搭配XUAWEI WATCH CT2加碼限定好禮!') 103 | self.assertEqual(lang_code, 'zh-hant' ) 104 | 105 | lang_code = self.langid.predict('平嘢有冇好嘢?~$500真無線耳機評測 Sabbot K12 Ultra | Edofier TZS 5 | Soeul ST-XX | 米Air 2 【Market.test.tw產品比較】') 106 | self.assertEqual(lang_code, 'zh-hant' ) 107 | 108 | lang_code = self.langid.predict('沈鸣人:OPO Fid Z2系列缎黑等配色会逐渐补货,开售当日会加货') 109 | self.assertEqual(lang_code, 'zh-hans' ) 110 | 111 | lang_code = self.langid.predict('平嘢有冇好嘢?', force_second=True) 112 | self.assertEqual(lang_code, 'zh-yue' ) 113 | 114 | lang_code = self.langid.predict('iPhone 7成功刷入Android 10 蘋果控告技術擁有公司') 115 | self.assertEqual(lang_code, 'zh-hant' ) 116 | 117 | 118 | def test_batches(self): 119 | lang_codes = self.langid.predict(['iPhone 7成功刷入Android 10 蘋果控告技術擁有公司', 120 | 'РФ и еще 26 стран назовут своих представителей на "Евровидении" до 9 марта', 121 | 'BroadcomAktie Aktuell Broadcom notiert mit 3 Prozent deutliche Verluste', 122 | 'the brown fox jumps over the lazy dog', 123 | 'Pokémon Spada e Scudo: rivelato il nuovo Pokémon misterioso Zarude', 124 | 'Vidéo : Amazon ouvre un supermarché alimentaire sans caisse', 125 | '英国:6月でEUとの交渉終了も辞さない構え、離脱後の通商協定巡り - Bloomberg', 126 | 'Braga garante internacional português', 127 | ]) 128 | self.assertEqual(lang_codes, ['zh-hant', 'ru', 'de', 'en','it', 'fr', 'ja', 'pt']) 129 | 130 | def test_unknown(self): 131 | lang_code = self.langid.predict('', force_second=True) 132 | self.assertEqual(lang_code, UNK_CLS) 133 | 134 | lang_code = self.langid.predict('???。???。???。???。???。???。') 135 | self.assertEqual(lang_code, UNK_CLS) 136 | 137 | lang_code = self.langid.predict('???。???。???。???。???。???。', prob=True) 138 | self.assertEqual(lang_code, (UNK_CLS, 1.0)) 139 | 140 | lang_code = self.langid.predict('???。???。???。???。???。???。', prob=True, k=15) 141 | self.assertEqual(lang_code, [(UNK_CLS, 1.0)]) 142 | 143 | def suite(): 144 | suite = unittest.TestSuite() 145 | suite.addTests(unittest.makeSuite(FastLangIdTest)) 146 | return suite 147 | 148 | 149 | if __name__ == '__main__': 150 | unittest.main() --------------------------------------------------------------------------------