【问题标题】:String to word frequencies for SVMSVM 的字符串到单词频率
【发布时间】:2021-07-15 16:49:47
【问题描述】:

我正在开发一个 SVM,并且我正在使用我想使用滑动窗口将其分解为更小的“单词”的字符串。然后我想将每个“单词”的频率收集到一个嵌套列表中。

我在名为final_samps 的元组列表中有大约 6000 个样本,其中每个元组如下所示:

('Pkinase', 'NVLVCIAVCMVRKLRRPCNYLLVSLALSDLCVALLVMPMALLYEVLEKWNFGPLLCDIWVSFDVLCCTASILNLCAISVDRYLAITKPLEYGVKRTPRRMMLCVGIVWLAAACISLPPLLILGNEHEDEKGQPICTVCQNFAYQIYATLGSFYIPLSVMLFVYYQIFRAARRIVLEEKRAQTHLQQALNGTGSPSAPQAPPLGHTELASSGNGQRHSSVGNTSLTYSTCGGLSSGGGALAGHGSGGGVSGSTGLLGSPHHKKLRFQLAKEKKASTTLGIIMSAFTVCWLPFFILALIRPFETMHVPASLSSLFLWLGYANSLLNPIIY')

我已将所有样本中的所有“单词”列表收集到一个名为 word_set 的列表中,如下所示:

['NVLVCI', 'VLVCIA', 'LVCIAV', 'VCIAVC', 'CIAVCM', 'IAVCMV', 'AVCMVR', 'VCMVRK', 'CMVRKL', 'MVRKLR', 'VRKLRR', 'RKLRRP', 'KLRRPC', 'LRRPCN', 'RRPCNY', 'RPCNYL', 'PCNYLL', 'CNYLLV', 'NYLLVS', 'YLLVSL', 'LLVSLA', 'LVSLAL', 'VSLALS', 'SLALSD', 'LALSDL', 'ALSDLC', 'LSDLCV', 'SDLCVA', 'DLCVAL', 'LCVALL', 'CVALLV', 'VALLVM', 'ALLVMP', 'LLVMPM', 'LVMPMA', 'VMPMAL', 'MPMALL', 'PMALLY', 'MALLYE', 'ALLYEV', 'LLYEVL', 'LYEVLE', 'YEVLEK', 'EVLEKW', 'VLEKWN', 'LEKWNF', 'EKWNFG', 'KWNFGP', 'WNFGPL', 'NFGPLL', 'FGPLLC', 'GPLLCD', 'PLLCDI', 'LLCDIW', 'LCDIWV', 'CDIWVS', 'DIWVSF', 'IWVSFD', 'WVSFDV', 'VSFDVL', 'SFDVLC', 'FDVLCC', 'DVLCCT', 'VLCCTA', 'LCCTAS', 'CCTASI', 'CTASIL', 'TASILN', 'ASILNL', 'SILNLC', 'ILNLCA', 'LNLCAI', 'NLCAIS', 'LCAISV', 'CAISVD', 'AISVDR', 'ISVDRY', 'SVDRYL', 'VDRYLA', 'DRYLAI', 'RYLAIT', 'YLAITK', 'LAITKP', 'AITKPL', 'ITKPLE', 'TKPLEY', 'KPLEYG', 'PLEYGV', 'LEYGVK', 'EYGVKR', 'YGVKRT', 'GVKRTP', 'VKRTPR', 'KRTPRR', 'RTPRRM', 'TPRRMM', 'PRRMML', 'RRMMLC', 'RMMLCV', 'MMLCVG', 'MLCVGI', 'LCVGIV', 'CVGIVW', 'VGIVWL', 'GIVWLA', 'IVWLAA', 'VWLAAA', 'WLAAAC', 'LAAACI', 'AAACIS', 'AACISL', 'ACISLP', 'CISLPP', 'ISLPPL', 'SLPPLL', 'LPPLLI', 'PPLLIL', 'PLLILG', 'LLILGN', 'LILGNE', 'ILGNEH', 'LGNEHE', 'GNEHED', 'NEHEDE', 'EHEDEK', 'HEDEKG', 'EDEKGQ', 'DEKGQP', 'EKGQPI', 'KGQPIC', 'GQPICT', 'QPICTV', 'PICTVC', 'ICTVCQ', 'CTVCQN', 'TVCQNF', 'VCQNFA', 'CQNFAY', 'QNFAYQ', 'NFAYQI', 'FAYQIY', 'AYQIYA', 'YQIYAT', 'QIYATL', 'IYATLG', 'YATLGS', 'ATLGSF', 'TLGSFY', 'LGSFYI', 'GSFYIP', 'SFYIPL', 'FYIPLS', 'YIPLSV', 'IPLSVM', 'PLSVML', 'LSVMLF', 'SVMLFV', 'VMLFVY', 'MLFVYY', 'LFVYYQ', 'FVYYQI', 'VYYQIF', 'YYQIFR', 'YQIFRA', 'QIFRAA', 'IFRAAR', 'FRAARR', 'RAARRI', 'AARRIV', 'ARRIVL', 'RRIVLE', 'RIVLEE', 'IVLEEK', 'VLEEKR', 'LEEKRA', 'EEKRAQ', 'EKRAQT', 'KRAQTH', 'RAQTHL', 'AQTHLQ', 'QTHLQQ', 'THLQQA', 'HLQQAL', 'LQQALN', 'QQALNG', 'QALNGT', 'ALNGTG', 'LNGTGS', 'NGTGSP', 'GTGSPS', 'TGSPSA', 'GSPSAP', 'SPSAPQ', 'PSAPQA', 'SAPQAP', 'APQAPP', 'PQAPPL', 'QAPPLG', 'APPLGH', 'PPLGHT', 'PLGHTE', 'LGHTEL', 'GHTELA', 'HTELAS', 'TELASS', 'ELASSG', 'LASSGN', 'ASSGNG', 'SSGNGQ', 'SGNGQR', 'GNGQRH', 'NGQRHS', 'GQRHSS', 'QRHSSV', 'RHSSVG', 'HSSVGN', 'SSVGNT', 'SVGNTS', 'VGNTSL', 'GNTSLT', 'NTSLTY', 'TSLTYS', 'SLTYST', 'LTYSTC', 'TYSTCG', 'YSTCGG', 'STCGGL', 'TCGGLS', 'CGGLSS', 'GGLSSG', 'GLSSGG', 'LSSGGG', 'SSGGGA', 'SGGGAL', 'GGGALA', 'GGALAG', 'GALAGH', 'ALAGHG', 'LAGHGS', 'AGHGSG', 'GHGSGG', 'HGSGGG']

我现在坚持的部分是收集这些词的频率。我试图通过遍历每个样本来完成此操作,创建该样本中所有单词的字典,然后将值附加到列表中。我不确定我的代码中的问题出在哪里,但freqs 字典总是充满了全 0。

代码:

training_freq = []
training_label = []

for sample in final_samps[0]:
    freqs = {}
    words = [sample[1][i:i+word_size] for i in range(len(sample[1])-5)]
    for word in word_set:
        if word in words:
            freqs[word] += 1.0
        else:
            freqs[word] = 0.0
    training_freq.append(list(freqs.values()))

【问题讨论】:

    标签: python python-3.x svm


    【解决方案1】:

    如果我理解正确的话,你想计算你的单词出现的值吗? 如果你试试这个:

    import pandas as pd
    
    a = ['NVLVCI', 'VLVCIA', 'LVCIAV', 'VCIAVC', 'CIAVCM', 'IAVCMV', 'AVCMVR', 'VCMVRK', 'CMVRKL', 'MVRKLR', 'VRKLRR', 'RKLRRP', 'KLRRPC', 'LRRPCN', 'RRPCNY', 'RPCNYL', 'PCNYLL', 'CNYLLV', 'NYLLVS', 'YLLVSL', 'LLVSLA', 'LVSLAL', 'VSLALS', 'SLALSD', 'LALSDL', 'ALSDLC', 'LSDLCV', 'SDLCVA', 'DLCVAL', 'LCVALL', 'CVALLV', 'VALLVM', 'ALLVMP', 'LLVMPM', 'LVMPMA', 'VMPMAL', 'MPMALL', 'PMALLY', 'MALLYE', 'ALLYEV', 'LLYEVL', 'LYEVLE', 'YEVLEK', 'EVLEKW', 'VLEKWN', 'LEKWNF', 'EKWNFG', 'KWNFGP', 'WNFGPL', 'NFGPLL', 'FGPLLC', 'GPLLCD', 'PLLCDI', 'LLCDIW', 'LCDIWV', 'CDIWVS', 'DIWVSF', 'IWVSFD', 'WVSFDV', 'VSFDVL', 'SFDVLC', 'FDVLCC', 'DVLCCT', 'VLCCTA', 'LCCTAS', 'CCTASI', 'CTASIL', 'TASILN', 'ASILNL', 'SILNLC', 'ILNLCA', 'LNLCAI', 'NLCAIS', 'LCAISV', 'CAISVD', 'AISVDR', 'ISVDRY', 'SVDRYL', 'VDRYLA', 'DRYLAI', 'RYLAIT', 'YLAITK', 'LAITKP', 'AITKPL', 'ITKPLE', 'TKPLEY', 'KPLEYG', 'PLEYGV', 'LEYGVK', 'EYGVKR', 'YGVKRT', 'GVKRTP', 'VKRTPR', 'KRTPRR', 'RTPRRM', 'TPRRMM', 'PRRMML', 'RRMMLC', 'RMMLCV', 'MMLCVG', 'MLCVGI', 'LCVGIV', 'CVGIVW', 'VGIVWL', 'GIVWLA', 'IVWLAA', 'VWLAAA', 'WLAAAC', 'LAAACI', 'AAACIS', 'AACISL', 'ACISLP', 'CISLPP', 'ISLPPL', 'SLPPLL', 'LPPLLI', 'PPLLIL', 'PLLILG', 'LLILGN', 'LILGNE', 'ILGNEH', 'LGNEHE', 'GNEHED', 'NEHEDE', 'EHEDEK', 'HEDEKG', 'EDEKGQ', 'DEKGQP', 'EKGQPI', 'KGQPIC', 'GQPICT', 'QPICTV', 'PICTVC', 'ICTVCQ', 'CTVCQN', 'TVCQNF', 'VCQNFA', 'CQNFAY', 'QNFAYQ', 'NFAYQI', 'FAYQIY', 'AYQIYA', 'YQIYAT', 'QIYATL', 'IYATLG', 'YATLGS', 'ATLGSF', 'TLGSFY', 'LGSFYI', 'GSFYIP', 'SFYIPL', 'FYIPLS', 'YIPLSV', 'IPLSVM', 'PLSVML', 'LSVMLF', 'SVMLFV', 'VMLFVY', 'MLFVYY', 'LFVYYQ', 'FVYYQI', 'VYYQIF', 'YYQIFR', 'YQIFRA', 'QIFRAA', 'IFRAAR', 'FRAARR', 'RAARRI', 'AARRIV', 'ARRIVL', 'RRIVLE', 'RIVLEE', 'IVLEEK', 'VLEEKR', 'LEEKRA', 'EEKRAQ', 'EKRAQT', 'KRAQTH', 'RAQTHL', 'AQTHLQ', 'QTHLQQ', 'THLQQA', 'HLQQAL', 'LQQALN', 'QQALNG', 'QALNGT', 'ALNGTG', 'LNGTGS', 'NGTGSP', 'GTGSPS', 'TGSPSA', 'GSPSAP', 'SPSAPQ', 'PSAPQA', 'SAPQAP', 'APQAPP', 'PQAPPL', 'QAPPLG', 'APPLGH', 'PPLGHT', 'PLGHTE', 'LGHTEL', 'GHTELA', 'HTELAS', 'TELASS', 'ELASSG', 'LASSGN', 'ASSGNG', 'SSGNGQ', 'SGNGQR', 'GNGQRH', 'NGQRHS', 'GQRHSS', 'QRHSSV', 'RHSSVG', 'HSSVGN', 'SSVGNT', 'SVGNTS', 'VGNTSL', 'GNTSLT', 'NTSLTY', 'TSLTYS', 'SLTYST', 'LTYSTC', 'TYSTCG', 'YSTCGG', 'STCGGL', 'TCGGLS', 'CGGLSS', 'GGLSSG', 'GLSSGG', 'LSSGGG', 'SSGGGA', 'SGGGAL', 'GGGALA', 'GGALAG', 'GALAGH', 'ALAGHG', 'LAGHGS', 'AGHGSG', 'GHGSGG', 'HGSGGG']
    a = pd.DataFrame(a)
    bla = a[0].value_counts().sort_values()
    

    它会为你做的。但我只为每个值得到“1”,因为每个单词在您的列表中只出现一次。

    【讨论】:

    • 是的,我正在尝试计算每个单词的出现次数。它应该以每个单词的值 1 或 0 结束。我会试试这个方法,谢谢!
    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    相关资源
    最近更新 更多