Skip to content

Commit

Permalink
Merge pull request #14 from bab2min/develop
Browse files Browse the repository at this point in the history
fixed utf16 bug
  • Loading branch information
bab2min authored Apr 1, 2020
2 parents a49b0a6 + 66d4c5f commit 090be17
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 4 deletions.
3 changes: 2 additions & 1 deletion document/document_header.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
<a class="homelink" rel="home" title="kiwipiepy Home" href="/kiwipiepy" style="display:block; font-size:2em; font-weight:bold; color:#555; padding-bottom:.5em; border-bottom:1px solid silver;"> <img src="/kiwipiepy/logo.png" alt="" style="height:1.5em;"> kiwipiepy </a>
<!--a id='lang-en' href="../en/index.html">English</a--> <a id='lang-kr' href="../kr/index.html">한국어</a>
<div id="version-link">
<span>v0.8.0</span>
<span>v0.8.1</span>
<ul>
<li><a href='/kiwipiepy/v0.8.1/kr'>v0.8.1</a></li>
<li><a href='/kiwipiepy/v0.8.0/kr'>v0.8.0</a></li>
</ul>
</div>
Expand Down
22 changes: 21 additions & 1 deletion kiwipiepy/documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Kiwipiepy란?
Kiwipiepy는 한국어 형태소 분석기인 Kiwi(Korean Intelligent Word Identifier)의 Python 모듈입니다.
C++로 작성되었고 다른 패키지에 의존성이 없으므로 C++ 컴파일이 가능한 환경이라면 어디에서나 Kiwipiepy를 사용 가능합니다.

현재 Kiwipiepy의 최신 버전은 0.8.0입니다.
현재 Kiwipiepy의 최신 버전은 0.8.1입니다.

.. image:: https://badge.fury.io/py/kiwipiepy.svg

Expand Down Expand Up @@ -168,6 +168,23 @@ Kiwipiepy가 제대로 설치되었는지 확인하기 위해서는 다음 명
handle = IOHandler('test.txt', 'result.txt')
kiwi.analyze(handle.read, handle.write)

** async_analyze 예제 **

다음 예제 코드에서는 async_analyze를 사용해 멀티스레딩 분석을 진행합니다.

::

from kiwipiepy import Kiwi
kiwi = Kiwi()
kiwi.prepare()
ret = []
# input.txt 파일의 라인별로 분석 작업을 할당합니다.
for line in open('input.txt', encoding='utf-8'):
ret.append(kiwi.async_analyze(line))

for r in ret:
print(r()) # r을 호출하여 분석 결과를 얻습니다.

사용자 정의 사전 포맷
---------------------
사용자 정의 사전은 UTF-8로 인코딩된 텍스트 파일이어야 하며, 다음과 같은 구조를 띄어야 합니다.
Expand Down Expand Up @@ -199,6 +216,9 @@ Python 모듈 관련 오류는 https://github.com/bab2min/kiwipiepy/issues, 형

역사
----
* 0.8.1 (2020-04-01)
* U+10000 이상의 유니코드 문자를 입력시 Python 모듈에서 오류가 발생하는 문제를 수정했습니다.

* 0.8.0 (2020-03-29)
* URL, 이메일, 해시태그를 검출하는 기능이 추가되었습니다. `analyze` 메소드의 `match_options` 파라미터로 이 기능의 사용 유무를 설정할 수 있습니다.
* 치(하지), 컨대(하건대), 토록(하도록), 케(하게) 축약형이 포함된 동사 활용형을 제대로 분석하지 못하는 문제를 해결했습니다.
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

largs = []
if platform.system() == 'Windows': cargs = ['/O2', '/MT', '/Gy']
else: cargs = ['-std=c++1y', '-O3', '-fpermissive']
else: cargs = ['-std=c++1y', '-O3', '-fpermissive', '-g']

if platform.system() == 'Darwin':
cargs += ['-stdlib=libc++']
Expand All @@ -33,7 +33,7 @@
setup(
name='kiwipiepy',

version='0.8.0',
version='0.8.1',

description='Kiwi, the Korean Tokenizer for Python',
long_description=long_description,
Expand Down
2 changes: 2 additions & 0 deletions src/core/Utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ namespace kiwi
}
else if(code < 0x10FFFF)
{
code -= 0x10000;
ret.push_back(0xD800 | (code >> 10));
ret.push_back(0xDC00 | (code & 0x3FF));
}
Expand All @@ -126,6 +127,7 @@ namespace kiwi
size_t code2 = *it;
if ((code2 & 0xFC00) != 0xDC00) throw KiwiUnicodeException{ "unpaired surrogate" };
code = ((code & 0x3FF) << 10) | (code2 & 0x3FF);
code += 0x10000;
}

if (code <= 0x7F)
Expand Down
8 changes: 8 additions & 0 deletions test.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ def test_analyze_multi():
handle = IOHandler(kolaw.open('constitution.txt'), open('result.txt', 'w', encoding='utf-8'))
kiwi.analyze(handle.read, handle.write)

def test_async_analyze():
kiwi = Kiwi()
kiwi.prepare()
ret = []
for line in kolaw.open('constitution.txt'):
ret.append(kiwi.async_analyze(line))
ret = [r() for r in ret]

def test_extract_words():
kiwi = Kiwi()
kiwi.prepare()
Expand Down

0 comments on commit 090be17

Please sign in to comment.