dmmiller612 / bert-extractive-summarizer

Easy to use extractive text summarization with BERT
MIT License
1.37k stars 307 forks source link

Support for transformers 4.4.0 #107

Closed zafercavdar closed 3 years ago

zafercavdar commented 3 years ago

My project needs transformers v4.4.0 and bert-extractive-summarizer, however bert-extractive-summarizer==0.7.1 raises

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-1-52f597fbeb0b> in <module>
----> 1 from transformers import *

~\anaconda3\envs\tf\lib\site-packages\transformers\__init__.py in __getattr__(self, name)
   2306             if name == "__version__":
   2307                 return __version__
   2308             return super().__getattr__(name)
   2309 
   2310     sys.modules[__name__] = _LazyModule(__name__, _import_structure)

~\anaconda3\envs\tf\lib\site-packages\transformers\file_utils.py in __getattr__(self, name)
   1655         elif name in self._class_to_module.keys():
   1656             module = self._get_module(self._class_to_module[name])
   1657             value = getattr(module, name)
   1658         else:
   1659             raise AttributeError(f"module {self.__name__} has no attribute {name}")

~\anaconda3\envs\tf\lib\site-packages\transformers\file_utils.py in __getattr__(self, name)
   1657             value = getattr(module, name)
   1658         else:
   1659             raise AttributeError(f"module {self.__name__} has no attribute {name}")
   1660 
   1661         setattr(self, name, value)

AttributeError: module transformers.models.ibert has no attribute IBertLayer

when it imports transformers with *.

Replacing * with all used classes solves the problem and makes it possible to use transformers==4.4.0 with bert-extractive-summarizer.