В настоящее время я работаю над проектом машинного обучения и занимаюсь созданием набора данных. Набор данных будет состоять из целого ряда различных текстовых функций различной длины от 1 предложения до примерно 50 предложений (включая пунктуацию). Каков наилучший способ хранения этих данных для предварительной обработки и использования для машинного обучения с использованием python?Храните текстовый набор данных для двоичной классификации
ответ
в большинстве случаев, вы можете использовать метод, называемый мешком Слова, однако, в некоторых случаях, когда вы выполняете более сложную задачу, как извлечение подобия или хотите сделать сравнение между предложениями, вы должны использовать Word2Vec
Сумка Word
Вы можете использовать классическое представление Bag-Of-Word, в котором вы кодируете e каждый образец в длинный вектор, указывающий количество всех слов из всех выборок. Например, если у вас есть два образца:
"I like apple, and she likes apple and banana."
,
"I love dogs but Sara prefer cats."
.
Тогда все возможные слова (порядок здесь не имеет значения):
I she Sara like likes love prefer and but apple banana dogs cats , .
Затем оба образца будут закодированы
First: 1 1 0 1 1 0 0 2 0 2 1 0 0 1 1
Second: 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1
Если вы используете sklearn, задача будет быть столь же просто, как:
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
corpus = [
'This is the first document.',
'This is the second second document.',
'And the third one.',
'Is this the first document?',
]
X = vectorizer.fit_transform(corpus)
# Now you can feed X into any other machine learning algorithms.
Word2Vec
Word2Vec - это более сложный метод, который пытается найти взаимосвязь между словами путем обучения нейронной сети под номером . Вложение в простой английский язык можно рассматривать как математическое представление слова, в контексте всех предоставленных образцов. Основная идея заключается в том, что слова похожи, если их контексты похожи.
Результат Word2Vec - это векторное представление (вложения) всех слов, показанных во всех образцах. Удивительно то, что мы можем выполнять алгоритмические операции над вектором.Крутой пример: Queen - Woman + Man = King
reference here
Чтобы использовать Word2Vec, мы можем использовать пакет под названием gensim, вот основные настройки:
model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
model.most_similar(positive=['woman', 'king'], negative=['man'])
>>> [('queen', 0.50882536), ...]
Здесь sentences
ваши данные, size
является размерность вложений, чем больше size
, тем больше пространства используется для представления слова, и всегда есть overfitting, о котором мы должны думать. window
- это размер контекста, о котором нас беспокоят, это количество слов перед целевым словом, которое мы рассматриваем, когда мы прогнозируем цель из ее контекста, когда тренируемся.
Один из распространенных способов создания словаря (все возможные слова), а затем, например, кодировать каждый из ваших примеров в функции этого диктатора (например, это очень маленький и ограниченный словарь), вы могли бы иметь словарь: hello, world, from, python. Каждое слово будет связано с позицией, и в каждом из ваших примеров вы определяете вектор с 0 для существования и 1 для существования, например, для примера «hello python» вы должны кодировать его как: 1,0,0,1
- 1. TensorFlow для двоичной классификации
- 2. Использование LSTM для двоичной классификации
- 3. Создание набора данных речи для двоичной классификации LSTM
- 4. RNN для двоичной классификации последовательности
- 5. Объединение алгоритмов двоичной классификации
- 6. TensorFlow: точность двоичной классификации
- 7. Как использовать OpenCV RTrees для двоичной классификации?
- 8. Как использовать гауссовский процесс для двоичной классификации?
- 9. Как выбрать сбалансированную выборку для двоичной классификации?
- 10. с использованием SVM для двоичной классификации
- 11. Использование sklearn prob_a для логистической двоичной классификации
- 12. CNN для двоичной классификации с использованием MatConvNet
- 13. Как изменить пороговое значение для двоичной классификации
- 14. Как рассчитать индекс GINI для двоичной классификации?
- 15. О двоичной классификации в Caffe
- 16. Создать набор данных для двоичной классификации в k-NN с использованием Python
- 17. Подготовка и тестирование Набор данных для текстового файла классификации
- 18. TensorFlow: как реализовать функцию потери класса для двоичной классификации
- 19. TensorFlow: использование F1_score в контексте двоичной классификации
- 20. Обработка текстовых данных для классификации
- 21. Как использовать набор данных UCI для классификации RVM?
- 22. Как создать набор данных для классификации изображений в Azure?
- 23. Поиск оптимальной функции с использованием регрессии Lasso в двоичной классификации
- 24. Храните большой набор реляционных данных в приложении JavaScript Electron Desktop?
- 25. Как набор данных для подвыборов
- 26. Храните текстовый файл в массив и наоборот
- 27. Можем ли мы использовать методы глубокого обучения в двоичной классификации?
- 28. k-означает кластеризацию для классификации данных тестирования
- 29. Использование weka для классификации данных датчика
- 30. Как создать битовый набор из двоичной строки?
Мне нужно сначала загрузить загрузку данных из PubMed и запланировать выполнение текстовой предварительной обработки, как я могу сохранить это первым? – Toby
Если данные, которые вы загружаете, похожи на [this] (https://www.ncbi.nlm.nih.gov/protein/BAC80069.1), я предполагаю, что вы можете просто загрузить их в виде текстового файла любого формата, а затем, когда вам это нужно, вы можете [загрузить их] (http://stackoverflow.com/questions/3925614/how-do-you-read-a-file-into-a-list-in-python) с помощью 'file. readline() 'для чтения текстов по строкам – Jason