Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def disambiguate_entity(key, text, lang="en_US"):
"""
Resolve ambiguity between entities with same dimensionality.
"""
try:
if clf.USE_CLF:
ent = clf.disambiguate_entity(key, text, lang)
else:
derived = load.entities().derived[key]
if len(derived) > 1:
ent = no_clf.disambiguate_no_classifier(derived, text, lang)
ent = load.entities().names[ent]
elif len(derived) == 1:
ent = next(iter(derived))
else:
ent = None
except (KeyError, StopIteration):
ent = None
return ent
def disambiguate_entity(key, text, lang="en_US"):
"""
Resolve ambiguity between entities with same dimensionality.
"""
new_ent = next(iter(load.entities(lang).derived[key]))
if len(load.entities(lang).derived[key]) > 1:
transformed = classifier(lang).tfidf_model.transform([clean_text(text, lang)])
scores = classifier(lang).classifier.predict_proba(transformed).tolist()[0]
scores = zip(scores, classifier(lang).target_names)
# Filter for possible names
names = [i.name for i in load.entities(lang).derived[key]]
scores = [i for i in scores if i[1] in names]
# Sort by rank
scores = sorted(scores, key=lambda x: x[0], reverse=True)
try:
new_ent = load.entities(lang).names[scores[0][1]]
except IndexError:
_LOGGER.debug('\tAmbiguity not resolved for "%s"', str(key))
def ambiguous_units(lang="en_US"): # pragma: no cover
"""
Determine ambiguous units
:return: list ( tuple( key, list (Unit) ) )
"""
ambiguous = [
i for i in list(load.units(lang).surfaces_all.items()) if len(i[1]) > 1
]
ambiguous += [i for i in list(load.units(lang).symbols.items()) if len(i[1]) > 1]
ambiguous += [i for i in list(load.entities(lang).derived.items()) if len(i[1]) > 1]
return ambiguous
"""
new_ent = next(iter(load.entities(lang).derived[key]))
if len(load.entities(lang).derived[key]) > 1:
transformed = classifier(lang).tfidf_model.transform([clean_text(text, lang)])
scores = classifier(lang).classifier.predict_proba(transformed).tolist()[0]
scores = zip(scores, classifier(lang).target_names)
# Filter for possible names
names = [i.name for i in load.entities(lang).derived[key]]
scores = [i for i in scores if i[1] in names]
# Sort by rank
scores = sorted(scores, key=lambda x: x[0], reverse=True)
try:
new_ent = load.entities(lang).names[scores[0][1]]
except IndexError:
_LOGGER.debug('\tAmbiguity not resolved for "%s"', str(key))
return new_ent
def disambiguate_entity(key, text, lang="en_US"):
"""
Resolve ambiguity between entities with same dimensionality.
"""
try:
if clf.USE_CLF:
ent = clf.disambiguate_entity(key, text, lang)
else:
derived = load.entities().derived[key]
if len(derived) > 1:
ent = no_clf.disambiguate_no_classifier(derived, text, lang)
ent = load.entities().names[ent]
elif len(derived) == 1:
ent = next(iter(derived))
else:
ent = None
except (KeyError, StopIteration):
ent = None
return ent