DL4J中文文檔/語(yǔ)言處理/Doc2Vec

在DL4J中的Doc2Vec, 或段落向量

Doc2Vec的主要目的是將任意文檔與標(biāo)簽關(guān)聯(lián),因此需要標(biāo)簽。Doc2Vec是Word2Vec的一個(gè)擴(kuò)展,它學(xué)習(xí)關(guān)聯(lián)標(biāo)簽和單詞,而不是用單詞關(guān)聯(lián)單詞。DL4J實(shí)現(xiàn)它的意圖是為了服務(wù)于Java、Scala和Culjule社區(qū)。

第一步是提出一個(gè)表示文檔“含義”的向量,然后可以將其用作有監(jiān)督的機(jī)器學(xué)習(xí)算法的輸入,來(lái)把文檔與標(biāo)簽相關(guān)聯(lián)。

在ParagraphVectors構(gòu)建器模式中,labels() 方法指向用于訓(xùn)練的標(biāo)簽。在下面的示例中,你可以看到與情感分析相關(guān)的標(biāo)簽:

    .labels(Arrays.asList("negative", "neutral","positive"))

image.gif

下面是段落向量分類的可運(yùn)行的完整示例

    public void testDifferentLabels() throws Exception {
        ClassPathResource resource = new ClassPathResource("/labeled");
        File file = resource.getFile();
        LabelAwareSentenceIterator iter = LabelAwareUimaSentenceIterator.createWithPath(file.getAbsolutePath());

        TokenizerFactory t = new UimaTokenizerFactory();

        ParagraphVectors vec = new ParagraphVectors.Builder()
                .minWordFrequency(1).labels(Arrays.asList("negative", "neutral","positive"))
                .layerSize(100)
                .stopWords(new ArrayList<String>())
                .windowSize(5).iterate(iter).tokenizerFactory(t).build();

        vec.fit();

        assertNotEquals(vec.lookupTable().vector("UNK"), vec.lookupTable().vector("negative"));
        assertNotEquals(vec.lookupTable().vector("UNK"),vec.lookupTable().vector("positive"));
        assertNotEquals(vec.lookupTable().vector("UNK"),vec.lookupTable().vector("neutral"));}

image.gif

延伸閱讀

翻譯:風(fēng)一樣的男子

image

如果您覺(jué)得我的文章給了您幫助,請(qǐng)為我買一杯飲料吧!以下是我的支付寶,意思一下我將非常感激!

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容