Skip to content
This repository has been archived by the owner on Mar 23, 2018. It is now read-only.

타국어 문장부호 처리 #7

Open
sukso96100 opened this issue Apr 4, 2017 · 6 comments
Open

타국어 문장부호 처리 #7

sukso96100 opened this issue Apr 4, 2017 · 6 comments
Labels

Comments

@sukso96100
Copy link
Member

일부 국가 언어의 경우, 문장부호를 입력할 경우 해당 문자가 아예 다른 문자일 경우가 있습니다.
예를 들어, 영어와 한국어의 느낌표(!) 는 중국어의 느낌표() 와 다른 문자입니다. 이런 부분 때문에 아래와 같은 오류가 생기는 것 같습니다. 몇가지 방법을 시도 해 보고 커밋을 넣어보겠습니다.

Failed to import plugins.dust
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/slackbot/manager.py", line 60, in _load_plugins
    import_module(module)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/src/plugins/dust.py", line 12, in <module>
    @listen_to('!空气 (.*)')
  File "/usr/local/lib/python3.6/site-packages/slackbot/bot.py", line 60, in wrapper
    re.compile(matchstr, flags)] = func
  File "/usr/local/lib/python3.6/re.py", line 233, in compile
    return _compile(pattern, flags)
  File "/usr/local/lib/python3.6/re.py", line 301, in _compile
    p = sre_compile.compile(pattern, flags)
  File "/usr/local/lib/python3.6/sre_compile.py", line 562, in compile
    p = sre_parse.parse(p, flags)
  File "/usr/local/lib/python3.6/sre_parse.py", line 870, in parse
    raise source.error("unbalanced parenthesis")
sre_constants.error: unbalanced parenthesis at position 7
@junshoong
Copy link
Collaborator

https://en.wikipedia.org/wiki/Chinese_punctuation
여기에 중국어 구두점과 관련한 내용이 조금 있습니다. 일반적으로 사용하는 반각 느낌표 (!) 대신 너비가 넓은 전각 느낌표()를 사용하는 경우 엔 http://stackoverflow.com/a/2422245/4466697 에 해당문제를 해결할 수 있는 내용이 있는것 같습니다. 전각문자에 해당하는 반각문자로 치환해주는 방법입니다. 이 부분을 고려해보시면 될 것 같습니다.

@sukso96100 sukso96100 added the bug label Apr 4, 2017
@junshoong
Copy link
Collaborator

추가적으로 궁금한 부분이 있는데, 일본이랑 중국에서는 전각문자 느낌표 ()를 일반적으로 사용하는 편인가요?

@sukso96100
Copy link
Member Author

sukso96100 commented Apr 4, 2017

일본어는 잘 모르겠는데, 중국어의 경우는 병음 입력기에서 느낌표가 전각문자 느낌표()로 입력됩니다. 다른 문장부호들도 보통 마찬가지.

중국어 병음 입력기에서 입력되는 문장부호

~·!¥()——「」【】:;”“‘’《》,。?/

영어 입력기에서 입력되는 문장부호

~`!$()_{}[]:;""''<>,.?/

@sukso96100
Copy link
Member Author

일본어는 @kms6190 이 친구가 잘 알지 않을까 싶네요.

sukso96100 added a commit that referenced this issue Apr 6, 2017
(.*) 는 중국어의 것이 아닌 영어의 것으로 해 줘야 하며,
그 앞에 느낌표는 중국어의 것으로 해도 작동에 지장이 없음.
@sukso96100
Copy link
Member Author

중국어의 경우는 앞에 느낌표는 반각 써도 문제 없고 뒤에 (.*) 를 중국어의 것이 아닌 영어의 것 으로 해 주면 잘 작동해네요. 뒤쪽만 영어의 것으로 해 주면 되지 않나 싶네요.

@sukso96100
Copy link
Member Author

다른 언어에 대해서도 토론 할 수 있도록 이슈를 계속 열어두겠습니다.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants