dictabert-lex / README.md
Shaltiel's picture
Update README.md
255556f
|
raw
history blame
3.68 kB
---
license: cc-by-4.0
language:
- he
inference: false
---
# DictaBERT: A State-of-the-Art BERT Suite for Modern Hebrew
State-of-the-art language model for Hebrew, released [here](https://arxiv.org/abs/2308.16687).
This is the fine-tuned model for the lemmatization task.
For the bert-base models for other tasks, see [here](https://huggingface.co/collections/dicta-il/dictabert-6588e7cc08f83845fc42a18b).
## General guidelines for how the lemmatizer works:
Given an input text in Hebrew, it attempts to match up each word with the correct lexeme from within the BERT vocabulary.
- If the word is split up into multiple wordpieces it doesn't cause a problem, we still predict the lexeme with a high accuracy.
- If the lexeme of a given token doesn't appear in the vocabulary, the model will attempt to predict a special token `[BLANK]`. In that case, the word is usually a name of a person or a city, and the lexeme is probably the word after removing prefixes which can be done with the [dictabert-seg](https://huggingface.co/dicta-il/dictabert-seg) tool.
- For verbs the lexeme is the 3rd person past singular form.
This method is purely neural-based, so in rare instances the predicted lexeme may not be lexically related to the input, but rather a synonym selected from the same semantic space. To handle those edge cases one can implement a filter on top of the prediction to look at the top K matches and choose using a specific set of measures, such as edit distance, to choose the prediction that can more reasonably form a lexeme for the input word.
Sample usage:
```python
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('dicta-il/dictabert-lex')
model = AutoModel.from_pretrained('dicta-il/dictabert-lex', trust_remote_code=True)
model.eval()
sentence = '讘砖谞转 1948 讛砖诇讬诐 讗驻专讬诐 拽讬砖讜谉 讗转 诇讬诪讜讚讬讜 讘驻讬住讜诇 诪转讻转 讜讘转讜诇讚讜转 讛讗诪谞讜转 讜讛讞诇 诇驻专住诐 诪讗诪专讬诐 讛讜诪讜专讬住讟讬讬诐'
print(model.predict([sentence], tokenizer))
```
Output:
```json
[
[
[
"讘砖谞转",
"砖谞讛"
],
[
"1948",
"1948"
],
[
"讛砖诇讬诐",
"讛砖诇讬诐"
],
[
"讗驻专讬诐",
"讗驻专讬诐"
],
[
"拽讬砖讜谉",
"拽讬砖讜谉"
],
[
"讗转",
"讗转"
],
[
"诇讬诪讜讚讬讜",
"诇讬诪讜讚"
],
[
"讘驻讬住讜诇",
"驻讬住讜诇"
],
[
"诪转讻转",
"诪转讻转"
],
[
"讜讘转讜诇讚讜转",
"转讜诇讚讛"
],
[
"讛讗诪谞讜转",
"讗讜诪谞讜转"
],
[
"讜讛讞诇",
"讛讞诇"
],
[
"诇驻专住诐",
"驻专住诐"
],
[
"诪讗诪专讬诐",
"诪讗诪专"
],
[
"讛讜诪讜专讬住讟讬讬诐",
"讛讜诪讜专讬住讟讬"
]
]
]
```
## Citation
If you use DictaBERT in your research, please cite ```DictaBERT: A State-of-the-Art BERT Suite for Modern Hebrew```
**BibTeX:**
```bibtex
@misc{shmidman2023dictabert,
title={DictaBERT: A State-of-the-Art BERT Suite for Modern Hebrew},
author={Shaltiel Shmidman and Avi Shmidman and Moshe Koppel},
year={2023},
eprint={2308.16687},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
```
## License
Shield: [![CC BY 4.0][cc-by-shield]][cc-by]
This work is licensed under a
[Creative Commons Attribution 4.0 International License][cc-by].
[![CC BY 4.0][cc-by-image]][cc-by]
[cc-by]: http://creativecommons.org/licenses/by/4.0/
[cc-by-image]: https://i.creativecommons.org/l/by/4.0/88x31.png
[cc-by-shield]: https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg