MxNetで文字列のセットをN-gramにしたい。おそらく、私はTFIDF Vectorizingのようなものをやっているだろうが、数と機能の限界を持つ単純なN-gramでも問題ないだろう。このための関数が組み込まれていますか?最善のアプローチは何でしょうか?MxNetでnグラムをどのように計算しますか?
現在、私は背中のステップと、なぜたちは伝統的にnグラムでテキストを表すことになりを聞いてみよう、Pythonので
def tfidf(str_list, ngram_width=3):
tf = {}
for s in str_list:
for start, end in zip(range(len(s) - ngram_width),
range(ngram_width, len(s))):
if s[start:end] not in tf:
tf[s[start:end]] = 0
tf[s[start:end]] += 1
idf = {}
for t in tf.keys():
cnt = 0
for s in str_list:
if t in s:
cnt += 1
idf[t] = len(str_list)/(cnt + 1.0)
return {t:tf[t]*idf[t] for t in tf.keys()}
本当に質問には答えませんが、「なぜ」、MXNetには存在しません。私はちょうど(私の今MXNetでの経験を加えて)、あなたが[Scikit-learn's TFIDFVectorizer](http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer)を使うことができたことに気付くでしょう。 html)を最小限の困難で*あなたが本当にしたい場合* –