Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stanfordnlp/stanza.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'stanza/tests/test_bsf_2_iob.py')
-rw-r--r--stanza/tests/test_bsf_2_iob.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/stanza/tests/test_bsf_2_iob.py b/stanza/tests/test_bsf_2_iob.py
new file mode 100644
index 00000000..81fa84c0
--- /dev/null
+++ b/stanza/tests/test_bsf_2_iob.py
@@ -0,0 +1,89 @@
+"""
+Tests the conversion code for the lang_uk NER dataset
+"""
+
+import unittest
+from stanza.utils.datasets.ner.convert_bsf_to_beios import convert_bsf, parse_bsf, BsfInfo
+
+import pytest
+pytestmark = [pytest.mark.travis, pytest.mark.pipeline]
+
+class TestBsf2Iob(unittest.TestCase):
+
+ def test_1line_follow_markup_iob(self):
+ data = 'тележурналіст Василь .'
+ bsf_markup = 'T1 PERS 14 20 Василь'
+ expected = '''тележурналіст O
+Василь B-PERS
+. O'''
+ self.assertEqual(expected, convert_bsf(data, bsf_markup, converter='iob'))
+
+ def test_1line_2tok_markup_iob(self):
+ data = 'тележурналіст Василь Нагірний .'
+ bsf_markup = 'T1 PERS 14 29 Василь Нагірний'
+ expected = '''тележурналіст O
+Василь B-PERS
+Нагірний I-PERS
+. O'''
+ self.assertEqual(expected, convert_bsf(data, bsf_markup, converter='iob'))
+
+ def test_1line_Long_tok_markup_iob(self):
+ data = 'А в музеї Гуцульщини і Покуття можна '
+ bsf_markup = 'T12 ORG 4 30 музеї Гуцульщини і Покуття'
+ expected = '''А O
+в O
+музеї B-ORG
+Гуцульщини I-ORG
+і I-ORG
+Покуття I-ORG
+можна O'''
+ self.assertEqual(expected, convert_bsf(data, bsf_markup, converter='iob'))
+
+ def test_2line_2tok_markup_iob(self):
+ data = '''тележурналіст Василь Нагірний .
+В івано-франківському видавництві «Лілея НВ» вийшла друком'''
+ bsf_markup = '''T1 PERS 14 29 Василь Нагірний
+T2 ORG 67 75 Лілея НВ'''
+ expected = '''тележурналіст O
+Василь B-PERS
+Нагірний I-PERS
+. O
+В O
+івано-франківському O
+видавництві O
+« O
+Лілея B-ORG
+НВ I-ORG
+» O
+вийшла O
+друком O'''
+ self.assertEqual(expected, convert_bsf(data, bsf_markup, converter='iob'))
+
+ def test_all_multiline_iob(self):
+ data = '''його книжечка «А .
+Kubler .
+Світло і тіні маестро» .
+Причому'''
+ bsf_markup = '''T4 MISC 15 49 А .
+Kubler .
+Світло і тіні маестро
+'''
+ expected = '''його O
+книжечка O
+« O
+А B-MISC
+. I-MISC
+Kubler I-MISC
+. I-MISC
+Світло I-MISC
+і I-MISC
+тіні I-MISC
+маестро I-MISC
+» O
+. O
+Причому O'''
+ self.assertEqual(expected, convert_bsf(data, bsf_markup, converter='iob'))
+
+
+if __name__ == '__main__':
+ unittest.main()