Closed t-sagara closed 3 years ago
setActiveDictionaries(), disactivateDictionaries() を利用して、 利用可能な辞書を全て除去した場合に RuntimeError 例外が発生する。
api.disactivateDictionaries(pattern=r'.*') RuntimeError: 全ての辞書が除外されます。
しかし一度全ての辞書を disactivate してから特定の辞書だけを activate したい場合もあるため、 例外を出さずに地名語が検索できないだけの方が使いやすい。
全ての辞書を利用不可能な状態で解析処理を繰り返すと Fatal Python error: deallocating None 例外が発生する。 これは Py_None が静的なオブジェクトを指しているため。
Fatal Python error: deallocating None
Py_None
libgeonlp/pygeonlp.cpp 内で Py_None を返す前に Py_INCREF(Py_None); を呼んで リファレンスカウンタを増やしておく必要がある。
libgeonlp/pygeonlp.cpp
Py_INCREF(Py_None);
参考: https://stackoverflow.com/questions/15287590/why-should-py-increfpy-none-be-required-before-returning-py-none-in-c
setActiveDictionaries(), disactivateDictionaries() を利用して、 利用可能な辞書を全て除去した場合に RuntimeError 例外が発生する。
しかし一度全ての辞書を disactivate してから特定の辞書だけを activate したい場合もあるため、 例外を出さずに地名語が検索できないだけの方が使いやすい。