原创 NLP實踐項目五:基於GRU的古詩生成(pytorch實現)

直接看代碼:github傳送門 數據集:古詩數據集 1. 數據預處理: 將古詩存爲上圖的格式,每行一首詩,便於使用torchtext讀取。 2. 模型定義     模型就是一個簡單的GRU模型, 3. 模型訓練和測試     訓

原创 NLP實踐項目四:基於Seq2Seq(包含Attention)的機器翻譯(pytorch實現)

直接看代碼:github傳送門 數據集:隨機生成如下形式的日期對,輸入是人可以閱讀的各種日期形式,輸出爲正規化的日期形式。參考吳恩達老師網易雲深度學習課程作業5。 輸入 輸出 monday march 7 1983

原创 pytorch DataLoader處理不定長序列

本篇博客的目的是: 將下圖這樣的輸入(每個tensor表示一個句子,01爲句子標籤): 轉化爲下圖所示的輸出(batch_size=2) 元組的第一個元素爲填充後的句子向量,第二個元素爲句子長度,第三個元素爲句子的label。

原创 LeetCode 995. Minimum Number of K Consecutive Bit Flips

In an array A containing only 0s and 1s, a K-bit flip consists of choosing a (contiguous) subarray of length K and

原创 《統計學習方法》之隱馬爾可夫模型代碼實現

    隱馬爾可夫模型是一種可用於序列標註問題的統計學習模型。核心如下圖:     對於序列標註問題,單詞序列是觀測序列,單詞對應的標籤序列是隱藏序列,也就是說每一個單詞都對應一個隱狀態,產生句子的過程實際上是隱狀態之間的狀態轉

原创 《統計學習方法》之最大熵模型代碼實現

    原理這裏就不贅述了。見參考鏈接4     說一些自己學習時困惑的地方,如果有不對的地方,還望各位評論指正。     下面從w的求解開始說起,下面是模型的對數似然函數: Ψ(w)=∑x,yP~(x,y)∑i=1nwifi(x

原创 《統計學習方法》之k近鄰kdtree實現

    K近鄰算法,顧名思義就是根據k個距離最近的節點的信息對新的節點的標籤進行預測。具體內容見代碼中詳細的註釋。     這裏說一下kd樹的使用,代碼中只實現了對最近鄰的搜索,kd樹最大的優勢就在於它根據數據集對空間按維度進行了

原创 pytorch自動求導實現感知機模型

    感知機理論知識鏈接。 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ Created on 2019/12/31 21:17 @author: phil """ i

原创 NLP實踐項目二:基於RNN、CNN的文本多分類(pytorch實現)

直接看代碼:github傳送門 數據集:Classify the sentiment of sentences from the Rotten Tomatoes dataset 1. 數據預處理 本項目實現了兩種數據預處理方式,一

原创 NLP實踐項目三:基於BiLSTM-CRF的實體識別(pytorch實現)

直接看代碼:github傳送門 數據集:Conll2003 1. 數據預處理 將txt中的文件讀出然後將句子和對應的標籤序列存入csv文件中,便於使用torchtext完成數據讀取。 2. 模型定義 上圖是BiLSTM的結構圖,

原创 算法和數據操作篇——遞歸和循環

面試題10:斐波那契數列原理鏈接 class Solution { public: int fib(int n) { /* 思路:使用a,b,c三個變量,滿足關係c=a+b

原创 數據結構篇——數組

面試題3:數組中重複的數字題目鏈接 class Solution { public: int findRepeatNumber(vector<int>& nums) { /* 思路:遍歷數組時將元素逐個歸位

原创 數據結構篇——樹

面試題7:重建二叉樹原題鏈接 方法1:使用vector存儲左右子樹的前序、中序遍歷結果然後直接遞歸調用建樹函數。 /** * Definition for a binary tree node. * struct TreeNo

原创 NLP實踐項目一:基於softmax regression的文本多分類

直接看代碼:github傳送門 數據集:Classify the sentiment of sentences from the Rotten Tomatoes dataset 特徵表示:Bag-of-Word,N-gram B

原创 數據結構篇——字符串

面試題5:替換空格 題目鏈接 char* replaceSpace(char* s){ /* 思路:統計空格數量,爲了避免多次複製,從後複製到前,也可從前向後,複製過程中記錄已複製空格數量。 時間複雜度 O(n)