def tablelib_unary_features(span):
if not span.sentence.is_tabular():<EOL><INDENT>return<EOL><DEDENT>sentence = span.sentence<EOL>for attrib in settings["<STR_LIT>"]["<STR_LIT>"]["<STR_LIT>"]["<STR_LIT>"]:<EOL><INDENT>for ngram in get_cell_ngrams(<EOL>span,<EOL>n_max=settings["<STR_LIT>"]["<STR_LIT>"]["<STR_LIT>"][<EOL>"<STR_LIT>"<EOL>]["<STR_LIT>"],<EOL>attrib=attrib,<EOL>):<EOL><INDENT>yield f"<STR_LIT>", DEF_VALUE<EOL><DEDENT>for row_num in range(sentence.row_start, sentence.row_end + <NUM_LIT:1>):<EOL><INDENT>yield f"<STR_LIT>", DEF_VALUE<EOL><DEDENT>for col_num in range(sentence.col_start, sentence.col_end + <NUM_LIT:1>):<EOL><INDENT>yield f"<STR_LIT>", DEF_VALUE<EOL><DEDENT>yield f"<STR_LIT>", DEF_VALUE<EOL>yield f"<STR_LIT>", DEF_VALUE<EOL>for axis in ["<STR_LIT>", "<STR_LIT>"]:<EOL><INDENT>for ngram in get_head_ngrams(<EOL>span,<EOL>axis,<EOL>n_max=settings["<STR_LIT>"]["<STR_LIT>"]["<STR_LIT>"][<EOL>"<STR_LIT>"<EOL>]["<STR_LIT>"],<EOL>attrib=attrib,<EOL>):<EOL><INDENT>yield f"<STR_LIT>", DEF_VALUE<EOL><DEDENT><DEDENT>for ngram in get_row_ngrams(<EOL>span,<EOL>n_max=settings["<STR_LIT>"]["<STR_LIT>"]["<STR_LIT>"][<EOL>"<STR_LIT>"<EOL>]["<STR_LIT>"],<EOL>attrib=attrib,<EOL>):<EOL><INDENT>yield f"<STR_LIT>", DEF_VALUE<EOL><DEDENT>for ngram in get_col_ngrams(<EOL>span,<EOL>n_max=settings["<STR_LIT>"]["<STR_LIT>"]["<STR_LIT>"][<EOL>"<STR_LIT>"<EOL>]["<STR_LIT>"],<EOL>attrib=attrib,<EOL>):<EOL><INDENT>yield f"<STR_LIT>", DEF_VALUE<EOL><DEDENT><DEDENT>
Table-/structure-related features for a single span