Spaces:
Running
Running
File size: 2,727 Bytes
5ac8480 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import pytest
from pandas import read_csv
from src.parse_disambiguation.feature_extraction import get_word_features_df, join_feats
@pytest.fixture
def word_analysis():
return {'diac': 'ุจูุณูู
ู', 'lex': 'ูฑูุณูู
', 'caphi': 'b_i_s_m_i',
'gloss': 'in/by_+_(the)_Name_of_+_[def.gen.]',
'bw': 'ุจู/PREP+ูฑูุณูู
/NOUN+ู/CASE_DEF_GEN', 'pos': 'noun',
'catib6': 'PRT+NOM', 'ud': 'ADP+NOUN', 'root': 'ุณ.ู
.#',
'pattern': 'ุจู1ู2ู', 'prc3': '0', 'prc2': '0', 'prc1':
'bi_prep', 'prc0': '0', 'per': 'na', 'asp': 'na',
'vox': 'na', 'mod': 'na', 'form_gen': 'm', 'gen': 'm',
'form_num': 's', 'num': 's', 'stt': 'c', 'cas': 'g',
'enc0': '0', 'rat': 'i', 'source': 'lex', 'd1seg': 'ุจูุณูู
ู',
'd2seg': 'ุจู+_ุณูู
ู', 'd3seg': 'ุจู+_ุณูู
ู', 'atbseg': 'ุจู+_ุณูู
ู',
'd1tok': 'ุจูุณูู
ู', 'd2tok': 'ุจู+_ุงูุณูู
ู', 'd3tok': 'ุจู+_ุงูุณูู
ู',
'atbtok': 'ุจู+_ุงูุณูู
ู', 'bwtok': 'ุจู+_ูฑูุณูู
_+ู', 'pos_logprob': -0.4344233,
'lex_logprob': -3.156274, 'pos_lex_logprob': -3.156274,
'stem': 'ุจูุณูู
ู', 'stemgloss': 'in/by_+_(the)_Name_of_+_[def.gen.]', 'stemcat': 'FW-Wa'
}
@pytest.fixture
def clitic_feats():
return read_csv('data/clitic_feats.csv')
@pytest.fixture
def word_feats():
df = read_csv('tests/test_feats.tsv', sep='\t')
return df.astype(str).astype(object)
def test_get_word_features_df(word_analysis, clitic_feats, word_feats):
tagset = "catib6"
df = get_word_features_df(word_analysis, clitic_feats)
df = df.astype(str).astype(object)
assert word_feats.equals(df)
def test_join_feats_catib6(word_feats):
word_feats = join_feats(word_feats, 'catib6')
assert word_feats['tokens'] == ['ุจู+', 'ุงูุณูู
ู']
assert word_feats['pos_tags'] == ['PRT', 'NOM']
assert word_feats['lemmas'] == ['ุจู+', 'ูฑูุณูู
']
assert word_feats['feats'] == ['ud=ADP|prc3=0|prc2=0|prc1=0|prc0=na|per=na|asp=na|vox=na|mod=na|gen=na|num=na|stt=na|cas=na|enc0=0|rat=na', 'ud=NOUN|prc3=0|prc2=0|prc1=bi_prep|prc0=0|per=na|asp=na|vox=na|mod=na|gen=m|num=s|stt=c|cas=g|enc0=0|rat=i']
def test_join_feats_ud(word_feats):
word_feats = join_feats(word_feats, 'ud')
assert word_feats['tokens'] == ['ุจู+', 'ุงูุณูู
ู']
assert word_feats['pos_tags'] == ['ADP', 'NOUN']
assert word_feats['lemmas'] == ['ุจู+', 'ูฑูุณูู
']
assert word_feats['feats'] == ['catib6=PRT|prc3=0|prc2=0|prc1=0|prc0=na|per=na|asp=na|vox=na|mod=na|gen=na|num=na|stt=na|cas=na|enc0=0|rat=na', 'catib6=NOM|prc3=0|prc2=0|prc1=bi_prep|prc0=0|per=na|asp=na|vox=na|mod=na|gen=m|num=s|stt=c|cas=g|enc0=0|rat=i'] |