Closed ftnext closed 11 months ago
素晴らしい書籍をありがとうございます。 6章でBERT-CRFまで触れて非常に学びとなりましたし、他の章を読むのも楽しみにしています。
6章で見かけた型ヒントなのですが、組み込み関数のanyを型ヒントに使っています。 https://github.com/ghmagazine/llm-book/blob/ca62baeda2f47af23ba79e7db84b76d6fb8abc1a/chapter6/6-named-entity-recognition.ipynb
def convert_results_to_labels( results: list[dict[str, any]] ) -> tuple[list[list[str]], list[list[str]]]:
この部分をmypyで型チェックすると、以下のエラーが出力されます。
error: Function "builtins.any" is not valid as a type [valid-type]
組み込み関数anyは型ヒントに使えない(=現状の型ヒントが誤り)からで、typing.Anyを使うべきと考えます。 ref: https://docs.python.org/ja/3/library/typing.html#the-any-type
typing.Any
from typing import Any def convert_results_to_labels( results: list[dict[str, Any]] ) -> tuple[list[list[str]], list[list[str]]]:
組み込み関数anyを型ヒントに使っている箇所は6章のnotebookでは複数箇所見られました。 全9章となると使用箇所が多いかと思います。 ですが、読者が誤った型ヒントの書き方を学んでしまうのもよいことではないと思いますので、サンプルコードの型ヒントの修正をご検討いただけますと幸いです。
参考までに、上記の動作確認は
でしています。
ご指摘いただきありがとうございます。
ご指摘のとおり、anyは使うべきではなくtyping.Anyを使うべきだと考えます。 そのため、github上で提供しているコードはanyをtyping.Anyに変更しました。 また、書籍に関しては、正誤表に掲載し、次のバージョンでは修正したものを発行する予定です。
対応させていただきましたので、こちらはcloseさせていただきます。
素晴らしい書籍をありがとうございます。 6章でBERT-CRFまで触れて非常に学びとなりましたし、他の章を読むのも楽しみにしています。
6章で見かけた型ヒントなのですが、組み込み関数のanyを型ヒントに使っています。 https://github.com/ghmagazine/llm-book/blob/ca62baeda2f47af23ba79e7db84b76d6fb8abc1a/chapter6/6-named-entity-recognition.ipynb
この部分をmypyで型チェックすると、以下のエラーが出力されます。
組み込み関数anyは型ヒントに使えない(=現状の型ヒントが誤り)からで、
typing.Any
を使うべきと考えます。 ref: https://docs.python.org/ja/3/library/typing.html#the-any-type組み込み関数anyを型ヒントに使っている箇所は6章のnotebookでは複数箇所見られました。 全9章となると使用箇所が多いかと思います。 ですが、読者が誤った型ヒントの書き方を学んでしまうのもよいことではないと思いますので、サンプルコードの型ヒントの修正をご検討いただけますと幸いです。
参考までに、上記の動作確認は
でしています。