mirror of
https://github.com/explosion/spaCy.git
synced 2024-11-14 21:57:15 +03:00
9ba3e1cb2f
* Add basic tests for Tamil (ta) * Add comment Remove superfluous condition * Remove superfluous call to `pipe` Instantiate new tokenizer for special case
189 lines
7.6 KiB
Python
189 lines
7.6 KiB
Python
import pytest
|
|
from spacy.symbols import ORTH
|
|
from spacy.lang.ta import Tamil
|
|
|
|
TA_BASIC_TOKENIZATION_TESTS = [
|
|
(
|
|
"கிறிஸ்துமஸ் மற்றும் இனிய புத்தாண்டு வாழ்த்துக்கள்",
|
|
["கிறிஸ்துமஸ்", "மற்றும்", "இனிய", "புத்தாண்டு", "வாழ்த்துக்கள்"],
|
|
),
|
|
(
|
|
"எனக்கு என் குழந்தைப் பருவம் நினைவிருக்கிறது",
|
|
["எனக்கு", "என்", "குழந்தைப்", "பருவம்", "நினைவிருக்கிறது"],
|
|
),
|
|
("உங்கள் பெயர் என்ன?", ["உங்கள்", "பெயர்", "என்ன", "?"]),
|
|
(
|
|
"ஏறத்தாழ இலங்கைத் தமிழரில் மூன்றிலொரு பங்கினர் இலங்கையை விட்டு வெளியேறிப் பிற நாடுகளில் வாழ்கின்றனர்",
|
|
[
|
|
"ஏறத்தாழ",
|
|
"இலங்கைத்",
|
|
"தமிழரில்",
|
|
"மூன்றிலொரு",
|
|
"பங்கினர்",
|
|
"இலங்கையை",
|
|
"விட்டு",
|
|
"வெளியேறிப்",
|
|
"பிற",
|
|
"நாடுகளில்",
|
|
"வாழ்கின்றனர்",
|
|
],
|
|
),
|
|
(
|
|
"இந்த ஃபோனுடன் சுமார் ரூ.2,990 மதிப்புள்ள போட் ராக்கர்ஸ் நிறுவனத்தின் ஸ்போர்ட் புளூடூத் ஹெட்போன்ஸ் இலவசமாக வழங்கப்படவுள்ளது.",
|
|
[
|
|
"இந்த",
|
|
"ஃபோனுடன்",
|
|
"சுமார்",
|
|
"ரூ.2,990",
|
|
"மதிப்புள்ள",
|
|
"போட்",
|
|
"ராக்கர்ஸ்",
|
|
"நிறுவனத்தின்",
|
|
"ஸ்போர்ட்",
|
|
"புளூடூத்",
|
|
"ஹெட்போன்ஸ்",
|
|
"இலவசமாக",
|
|
"வழங்கப்படவுள்ளது",
|
|
".",
|
|
],
|
|
),
|
|
(
|
|
"மட்டக்களப்பில் பல இடங்களில் வீட்டுத் திட்டங்களுக்கு இன்று அடிக்கல் நாட்டல்",
|
|
[
|
|
"மட்டக்களப்பில்",
|
|
"பல",
|
|
"இடங்களில்",
|
|
"வீட்டுத்",
|
|
"திட்டங்களுக்கு",
|
|
"இன்று",
|
|
"அடிக்கல்",
|
|
"நாட்டல்",
|
|
],
|
|
),
|
|
(
|
|
"ஐ போன்க்கு முகத்தை வைத்து அன்லாக் செய்யும் முறை மற்றும் விரலால் தொட்டு அன்லாக் செய்யும் முறையை வாட்ஸ் ஆப் நிறுவனம் இதற்கு முன் கண்டுபிடித்தது",
|
|
[
|
|
"ஐ",
|
|
"போன்க்கு",
|
|
"முகத்தை",
|
|
"வைத்து",
|
|
"அன்லாக்",
|
|
"செய்யும்",
|
|
"முறை",
|
|
"மற்றும்",
|
|
"விரலால்",
|
|
"தொட்டு",
|
|
"அன்லாக்",
|
|
"செய்யும்",
|
|
"முறையை",
|
|
"வாட்ஸ்",
|
|
"ஆப்",
|
|
"நிறுவனம்",
|
|
"இதற்கு",
|
|
"முன்",
|
|
"கண்டுபிடித்தது",
|
|
],
|
|
),
|
|
(
|
|
"இது ஒரு வாக்கியம்.",
|
|
[
|
|
"இது",
|
|
"ஒரு",
|
|
"வாக்கியம்",
|
|
".",
|
|
],
|
|
),
|
|
(
|
|
"தன்னாட்சி கார்கள் காப்பீட்டு பொறுப்பை உற்பத்தியாளரிடம் மாற்றுகின்றன",
|
|
[
|
|
"தன்னாட்சி",
|
|
"கார்கள்",
|
|
"காப்பீட்டு",
|
|
"பொறுப்பை",
|
|
"உற்பத்தியாளரிடம்",
|
|
"மாற்றுகின்றன",
|
|
],
|
|
),
|
|
(
|
|
"நடைபாதை விநியோக ரோபோக்களை தடை செய்வதை சான் பிரான்சிஸ்கோ கருதுகிறது",
|
|
[
|
|
"நடைபாதை",
|
|
"விநியோக",
|
|
"ரோபோக்களை",
|
|
"தடை",
|
|
"செய்வதை",
|
|
"சான்",
|
|
"பிரான்சிஸ்கோ",
|
|
"கருதுகிறது",
|
|
],
|
|
),
|
|
(
|
|
"லண்டன் ஐக்கிய இராச்சியத்தில் ஒரு பெரிய நகரம்.",
|
|
[
|
|
"லண்டன்",
|
|
"ஐக்கிய",
|
|
"இராச்சியத்தில்",
|
|
"ஒரு",
|
|
"பெரிய",
|
|
"நகரம்",
|
|
".",
|
|
],
|
|
),
|
|
(
|
|
"என்ன வேலை செய்கிறீர்கள்?",
|
|
[
|
|
"என்ன",
|
|
"வேலை",
|
|
"செய்கிறீர்கள்",
|
|
"?",
|
|
],
|
|
),
|
|
(
|
|
"எந்த கல்லூரியில் படிக்கிறாய்?",
|
|
[
|
|
"எந்த",
|
|
"கல்லூரியில்",
|
|
"படிக்கிறாய்",
|
|
"?",
|
|
],
|
|
),
|
|
]
|
|
|
|
|
|
@pytest.mark.parametrize("text,expected_tokens", TA_BASIC_TOKENIZATION_TESTS)
|
|
def test_ta_tokenizer_basic(ta_tokenizer, text, expected_tokens):
|
|
tokens = ta_tokenizer(text)
|
|
token_list = [token.text for token in tokens]
|
|
assert expected_tokens == token_list
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"text,expected_tokens",
|
|
[
|
|
(
|
|
"ஆப்பிள் நிறுவனம் யு.கே. தொடக்க நிறுவனத்தை ஒரு லட்சம் கோடிக்கு வாங்கப் பார்க்கிறது",
|
|
[
|
|
"ஆப்பிள்",
|
|
"நிறுவனம்",
|
|
"யு.கே.",
|
|
"தொடக்க",
|
|
"நிறுவனத்தை",
|
|
"ஒரு",
|
|
"லட்சம்",
|
|
"கோடிக்கு",
|
|
"வாங்கப்",
|
|
"பார்க்கிறது",
|
|
],
|
|
)
|
|
],
|
|
)
|
|
def test_ta_tokenizer_special_case(text, expected_tokens):
|
|
# Add a special rule to tokenize the initialism "யு.கே." (U.K., as
|
|
# in the country) as a single token.
|
|
nlp = Tamil()
|
|
nlp.tokenizer.add_special_case("யு.கே.", [{ORTH: "யு.கே."}])
|
|
tokens = nlp(text)
|
|
|
|
token_list = [token.text for token in tokens]
|
|
assert expected_tokens == token_list
|