mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-25 01:16:28 +03:00
add hebrew tokenizer
This commit is contained in:
parent
8dff040032
commit
da135bd823
18
spacy/he/__init__.py
Normal file
18
spacy/he/__init__.py
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# encoding: utf8
|
||||||
|
from __future__ import unicode_literals, print_function
|
||||||
|
|
||||||
|
from ..language import Language
|
||||||
|
from ..attrs import LANG
|
||||||
|
|
||||||
|
from .language_data import *
|
||||||
|
|
||||||
|
|
||||||
|
class Hebrew(Language):
|
||||||
|
lang = 'he'
|
||||||
|
|
||||||
|
class Defaults(Language.Defaults):
|
||||||
|
lex_attr_getters = dict(Language.Defaults.lex_attr_getters)
|
||||||
|
lex_attr_getters[LANG] = lambda text: 'he'
|
||||||
|
|
||||||
|
tokenizer_exceptions = TOKENIZER_EXCEPTIONS
|
||||||
|
stop_words = STOP_WORDS
|
17
spacy/he/language_data.py
Normal file
17
spacy/he/language_data.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# encoding: utf8
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from .. import language_data as base
|
||||||
|
from ..language_data import update_exc, strings_to_exc
|
||||||
|
|
||||||
|
from .stop_words import STOP_WORDS
|
||||||
|
|
||||||
|
|
||||||
|
STOP_WORDS = set(STOP_WORDS)
|
||||||
|
|
||||||
|
|
||||||
|
TOKENIZER_EXCEPTIONS = strings_to_exc(base.EMOTICONS)
|
||||||
|
update_exc(TOKENIZER_EXCEPTIONS, strings_to_exc(base.ABBREVIATIONS))
|
||||||
|
|
||||||
|
|
||||||
|
__all__ = ["TOKENIZER_EXCEPTIONS", "STOP_WORDS"]
|
226
spacy/he/stop_words.py
Normal file
226
spacy/he/stop_words.py
Normal file
|
@ -0,0 +1,226 @@
|
||||||
|
# encoding: utf8
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
STOP_WORDS = set("""
|
||||||
|
אני
|
||||||
|
את
|
||||||
|
אתה
|
||||||
|
אנחנו
|
||||||
|
אתן
|
||||||
|
אתם
|
||||||
|
הם
|
||||||
|
הן
|
||||||
|
היא
|
||||||
|
הוא
|
||||||
|
שלי
|
||||||
|
שלו
|
||||||
|
שלך
|
||||||
|
שלה
|
||||||
|
שלנו
|
||||||
|
שלכם
|
||||||
|
שלכן
|
||||||
|
שלהם
|
||||||
|
שלהן
|
||||||
|
לי
|
||||||
|
לו
|
||||||
|
לה
|
||||||
|
לנו
|
||||||
|
לכם
|
||||||
|
לכן
|
||||||
|
להם
|
||||||
|
להן
|
||||||
|
אותה
|
||||||
|
אותו
|
||||||
|
זה
|
||||||
|
זאת
|
||||||
|
אלה
|
||||||
|
אלו
|
||||||
|
תחת
|
||||||
|
מתחת
|
||||||
|
מעל
|
||||||
|
בין
|
||||||
|
עם
|
||||||
|
עד
|
||||||
|
נגר
|
||||||
|
על
|
||||||
|
אל
|
||||||
|
מול
|
||||||
|
של
|
||||||
|
אצל
|
||||||
|
כמו
|
||||||
|
אחר
|
||||||
|
אותו
|
||||||
|
בלי
|
||||||
|
לפני
|
||||||
|
אחרי
|
||||||
|
מאחורי
|
||||||
|
עלי
|
||||||
|
עליו
|
||||||
|
עליה
|
||||||
|
עליך
|
||||||
|
עלינו
|
||||||
|
עליכם
|
||||||
|
לעיכן
|
||||||
|
עליהם
|
||||||
|
עליהן
|
||||||
|
כל
|
||||||
|
כולם
|
||||||
|
כולן
|
||||||
|
כך
|
||||||
|
ככה
|
||||||
|
כזה
|
||||||
|
זה
|
||||||
|
זות
|
||||||
|
אותי
|
||||||
|
אותה
|
||||||
|
אותם
|
||||||
|
אותך
|
||||||
|
אותו
|
||||||
|
אותן
|
||||||
|
אותנו
|
||||||
|
ואת
|
||||||
|
את
|
||||||
|
אתכם
|
||||||
|
אתכן
|
||||||
|
איתי
|
||||||
|
איתו
|
||||||
|
איתך
|
||||||
|
איתה
|
||||||
|
איתם
|
||||||
|
איתן
|
||||||
|
איתנו
|
||||||
|
איתכם
|
||||||
|
איתכן
|
||||||
|
יהיה
|
||||||
|
תהיה
|
||||||
|
היתי
|
||||||
|
היתה
|
||||||
|
היה
|
||||||
|
להיות
|
||||||
|
עצמי
|
||||||
|
עצמו
|
||||||
|
עצמה
|
||||||
|
עצמם
|
||||||
|
עצמן
|
||||||
|
עצמנו
|
||||||
|
עצמהם
|
||||||
|
עצמהן
|
||||||
|
מי
|
||||||
|
מה
|
||||||
|
איפה
|
||||||
|
היכן
|
||||||
|
במקום שבו
|
||||||
|
אם
|
||||||
|
לאן
|
||||||
|
למקום שבו
|
||||||
|
מקום בו
|
||||||
|
איזה
|
||||||
|
מהיכן
|
||||||
|
איך
|
||||||
|
כיצד
|
||||||
|
באיזו מידה
|
||||||
|
מתי
|
||||||
|
בשעה ש
|
||||||
|
כאשר
|
||||||
|
כש
|
||||||
|
למרות
|
||||||
|
לפני
|
||||||
|
אחרי
|
||||||
|
מאיזו סיבה
|
||||||
|
הסיבה שבגללה
|
||||||
|
למה
|
||||||
|
מדוע
|
||||||
|
לאיזו תכלית
|
||||||
|
כי
|
||||||
|
יש
|
||||||
|
אין
|
||||||
|
אך
|
||||||
|
מנין
|
||||||
|
מאין
|
||||||
|
מאיפה
|
||||||
|
יכל
|
||||||
|
יכלה
|
||||||
|
יכלו
|
||||||
|
יכול
|
||||||
|
יכולה
|
||||||
|
יכולים
|
||||||
|
יכולות
|
||||||
|
יוכלו
|
||||||
|
יוכל
|
||||||
|
מסוגל
|
||||||
|
לא
|
||||||
|
רק
|
||||||
|
אולי
|
||||||
|
אין
|
||||||
|
לאו
|
||||||
|
אי
|
||||||
|
כלל
|
||||||
|
נגד
|
||||||
|
אם
|
||||||
|
עם
|
||||||
|
אל
|
||||||
|
אלה
|
||||||
|
אלו
|
||||||
|
אף
|
||||||
|
על
|
||||||
|
מעל
|
||||||
|
מתחת
|
||||||
|
מצד
|
||||||
|
בשביל
|
||||||
|
לבין
|
||||||
|
באמצע
|
||||||
|
בתוך
|
||||||
|
דרך
|
||||||
|
מבעד
|
||||||
|
באמצעות
|
||||||
|
למעלה
|
||||||
|
למטה
|
||||||
|
מחוץ
|
||||||
|
מן
|
||||||
|
לעבר
|
||||||
|
מכאן
|
||||||
|
כאן
|
||||||
|
הנה
|
||||||
|
הרי
|
||||||
|
פה
|
||||||
|
שם
|
||||||
|
אך
|
||||||
|
ברם
|
||||||
|
שוב
|
||||||
|
אבל
|
||||||
|
מבלי
|
||||||
|
בלי
|
||||||
|
מלבד
|
||||||
|
רק
|
||||||
|
בגלל
|
||||||
|
מכיוון
|
||||||
|
עד
|
||||||
|
אשר
|
||||||
|
ואילו
|
||||||
|
למרות
|
||||||
|
אס
|
||||||
|
כמו
|
||||||
|
כפי
|
||||||
|
אז
|
||||||
|
אחרי
|
||||||
|
כן
|
||||||
|
לכן
|
||||||
|
לפיכך
|
||||||
|
מאד
|
||||||
|
עז
|
||||||
|
מעט
|
||||||
|
מעטים
|
||||||
|
במידה
|
||||||
|
שוב
|
||||||
|
יותר
|
||||||
|
מדי
|
||||||
|
גם
|
||||||
|
כן
|
||||||
|
נו
|
||||||
|
אחר
|
||||||
|
אחרת
|
||||||
|
אחרים
|
||||||
|
אחרות
|
||||||
|
אשר
|
||||||
|
או
|
||||||
|
""".split())
|
|
@ -11,6 +11,7 @@ from ..nl import Dutch
|
||||||
from ..sv import Swedish
|
from ..sv import Swedish
|
||||||
from ..hu import Hungarian
|
from ..hu import Hungarian
|
||||||
from ..fi import Finnish
|
from ..fi import Finnish
|
||||||
|
from ..he import Hebrew
|
||||||
from ..tokens import Doc
|
from ..tokens import Doc
|
||||||
from ..strings import StringStore
|
from ..strings import StringStore
|
||||||
from ..lemmatizer import Lemmatizer
|
from ..lemmatizer import Lemmatizer
|
||||||
|
@ -73,6 +74,11 @@ def sv_tokenizer():
|
||||||
return Swedish.Defaults.create_tokenizer()
|
return Swedish.Defaults.create_tokenizer()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def he_tokenizer():
|
||||||
|
return Hebrew.Defaults.create_tokenizer()
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def stringstore():
|
def stringstore():
|
||||||
return StringStore()
|
return StringStore()
|
||||||
|
|
0
spacy/tests/he/__init__.py
Normal file
0
spacy/tests/he/__init__.py
Normal file
17
spacy/tests/he/test_tokenizer.py
Normal file
17
spacy/tests/he/test_tokenizer.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# encoding: utf8
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
ABBREVIATION_TESTS = [
|
||||||
|
('פייתון היא שפת תכנות דינמית', ['פייתון', 'היא', 'שפת', 'תכנות', 'דינמית'])
|
||||||
|
]
|
||||||
|
|
||||||
|
TESTCASES = ABBREVIATION_TESTS
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('text,expected_tokens', TESTCASES)
|
||||||
|
def test_tokenizer_handles_testcases(he_tokenizer, text, expected_tokens):
|
||||||
|
tokens = he_tokenizer(text)
|
||||||
|
token_list = [token.text for token in tokens if not token.is_space]
|
||||||
|
assert expected_tokens == token_list
|
Loading…
Reference in New Issue
Block a user