-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improvement of automatic text detection #903
base: master
Are you sure you want to change the base?
Conversation
Codecov Report
@@ Coverage Diff @@
## master #903 +/- ##
==========================================
- Coverage 87.86% 87.77% -0.09%
==========================================
Files 206 206
Lines 13786 13726 -60
==========================================
- Hits 12113 12048 -65
- Misses 1673 1678 +5
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
tfidf_vectorizer.fit(np.where(pd.isna(column), '', column)) | ||
if len(tfidf_vectorizer.vocabulary_) > MIN_VOCABULARY_SIZE: | ||
return True | ||
except ValueError: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можем ли вынести из-под try
лишние действия и сделать
# Полезные действия
try:
# Полезные действия, где ловим ошибки
except:
# Обработка
else:
# Полезные действия
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можем ли вынести из-под
try
лишние действия и сделать
Вот так, например?
@staticmethod | ||
def is_full_of_nans(text_data: np.array) -> bool: | ||
if np.sum(pd.isna(text_data)) / len(text_data) > ALLOWED_NAN_PERCENT: | ||
return True | ||
return False | ||
|
||
@staticmethod | ||
def is_link(text_data: np.array) -> bool: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Во первых, стоит написать тесты, покрывающие эту функциональность, но как я понял из описания PR - они и так в процессе
Во вторых, в описании к PR сказано, что "Columns with links (they don't contain useful information and sometimes lead to a FEDOT fail) are removed automatically". Отсюда возникает вопрос, а стоит ли привязываться именно к ссылкам и заносить их все в категорию "столбцов для удаления" (кстати, а не сбивается ли индексация столбцов после их удаления в supplementary data?)? То есть вполне себе могу представить кейс, когда количество уникальных значений в текстовом столбце будет равно двум и оба варианта будут ссылками например. Тогда после One Hot Encoding'а информация из этого столбца вполне может пригодиться. Поэтому имеет смысл выделить свойства столбца с гиперссылками, которые мешают ML алгоритмам и избавляться от всех столбцов с такими свойствами.
Например, если проблема в том, что ссылка всегда одинаковая, то тогда стоит просто удалять все столбцы с неизменным набором символов в ячейках безотносительно их содержания. Если же ссылки для кажого объекта уникальные, то может имеет смысл удалять все столбцы, в которых текст уникален и при этом не представляет собой сырье для NLP алгоритмов (например, нет осмысленных фраз в ячейках или пробелов). Или проблема именно с тем, что встречается набор символов http
в ячейке?
С уже оставленными к этому PR комментариями согласен
87a289a
to
178110d
Compare
- reduced fraction of unique values - added min vocabulary size param - added class labels property to multimodal
- tests adapted for new functionality
- minor changes
a7e5390
to
c0ed0d7
Compare
Automatic text detection now is more effective, accurate and robust.