Closed t-sagara closed 3 years ago
住所ジオコーダーが返す「番地」と「番」は正確ではないので、 parser.py で形態素単位での分割結果をチェックする際に 「番」で終わる場合は「番地」として処理する暫定的な対応を行なった。
def get_addresses(self, lattice, pos):
...
address_string = geocoding_result[0][1] # 変換できた住所文字列
check_address = re.sub(r'番$', '番地', address_string)
# 一致した文字列が形態素ノード列のどの部分に当たるかチェック
surface = ''
i = pos
while i < len(lattice):
new_surface = surface + lattice[i][0].surface
if len(new_surface) > len(check_address):
# 形態素 lattice[i] は住所の区切りと一致しないので
# lattice[0:i] までを利用してジオコーディングをやり直す
return self.get_addresses(lattice[0:i], pos)
i += 1
surface = new_surface
if len(surface) == len(check_address):
break
...
上の結果の通り「15番」の「番」が「番地」の一部と重複している。
期待される正解: