【发布时间】:2022-01-18 03:59:41
【问题描述】:
我正在研究应用 BOW 方法为表示的和弦生成向量的可能性。但是,当我使用这种方法时,我可以生成向量,但并不是所有的和弦都被考虑在内。
这里是详细的代码:
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
# DF
music chords
0 1.wav N, A7, Am7, Am7b5/G, A7, N
1 2.wav N, Em, C, D, Em, C, D, N
2 3.wav N, E, A, E, B, A, D6, E, N
#BOW
bow = CountVectorizer(max_features=1000, ngram_range=(1,1))
train_bow = bow.fit_transform(df['chords'])
pd.DataFrame(bow.transform(df['chords']).toarray(), columns=sorted(bow.vocabulary_.keys()))
#Result
a7 am7 am7b5 d6 em
0 2 1 1 0 0
1 0 0 0 0 2
2 0 0 0 1 0
例如,请参阅不计算 C、D 和 A 等和弦。有谁明白我可能错了什么?
【问题讨论】:
-
可能 CountVectorizer 的默认标记器不是最适合您的字符串的。也许您应该编写一个自定义并通过 tokenizer 参数传递它
标签: python scikit-learn nlp