<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          TF-IDF算法:用 Python 提煉財經(jīng)新聞

          共 2476字,需瀏覽 5分鐘

           ·

          2022-05-20 22:05

          在信息爆炸的今天,我們不可能閱讀所有的新聞,那么如果我們使用機器學習,特別是tf-idf算法,如何從所有網(wǎng)絡上的文本中獲得最重要的信息呢?
          這篇文章是使用已知的tf-idf算法從網(wǎng)上獲取關鍵信息的一個案例。目的是鼓勵你利用它,并將其納入一些市場投資策略或任何其他用途。
          TF-IDF
          TF-IDF這個詞來自于“術語頻率--逆向文檔頻率”。這項技術的目標是計算一個詞在一個文件中出現(xiàn)的次數(shù)。
          第一部分,也就是TF,計算你看到每個詞的次數(shù)。然而,當你計算像"a "這樣的常用詞的值時,這可能會犯一些錯誤。這類詞被稱為停止詞,它們指的是冠詞、代詞、助詞等等。這些詞可以讓你建立一個可以理解的句子,但這些并不真正具有意義。因此,由于它們被廣泛使用,它們會有一個高的TF。
          考慮到這一點,該技術試圖用IDF這個詞來糾正這個錯誤。這一部分修改了TF,考慮到一個詞在大量文本中的使用次數(shù)。從這個意義上說,如果很多文本多次使用一個詞,它的Tf將被懲罰,它將被降低。
          作為tf-idf結果的一個例子,我們來看看這些句子。"I’m traveling to Paris this week","There will be so many journeys to Paris next week","Paris is supposed to receive a lot of tourists"。假設我們?nèi)サ袅送nD詞,那么Paris這個詞在每個句子中的頻率1;但是Paris相對于句子中的其他詞的重要性是巨大的,因為Paris出現(xiàn)在所有的句子中。
          總而言之,這種技術給了我們一個衡量一個詞在文本中的重要性的標準。
          實際案例
          讓我們看一個非常簡單的案例,使用TF-IDF來識別歷史上的主要話題。
          數(shù)據(jù)集
          我們從2009年到2020年的幾個英文文本中抽取了一組新聞和觀點。我們的數(shù)據(jù)集包含了日期、標題、新聞正文和被提及的股票。在這篇文章中,我們將只使用日期和標題,因為我們的目標是要抓住主要話題。
          預處理
          當你處理文本時,必須對文本進行處理,以避免模型中的噪點。也就是說,這些文本應該是清晰的,而且格式相同。因此,我們用以下方式處理了我們的原始文本,通過使用python中的nltk庫得到了處理后的文本。
          • 所有的字都用小寫。
          • 刪除數(shù)字和首字母。
          • 刪除停頓詞。
          • 刪除標點符號。
          • 詞義化。這意味著將該詞還原為一個詞的詞根同義詞。由于de輸入 "pos",可以確定詞根是來自形容詞、動詞還是名詞。
          • 刪除常見的詞,如“wall street”, “market”, “stock”, “share”, …


          1. import nltk

          2. from nltk.stem importWordNetLemmatizer

          3. import re


          4. stopwords = nltk.corpus.words('english')

          5. lemmatizer = WordNetLemmatizer()


          6. processed_text = re.sub('[^a-zA-Z]', ' ',original_text)

          7. processed_text = processed_text.lower()

          8. processed_text = processed_text.split()

          9. processed_text = [lemmatizer.lemmatize(word, pos='a') for word in processed_text if word notin set(stopwords)]

          10. processed_text = [lemmatizer.lemmatize(word, pos='v') for word in processed_text if word notin set(stopwords)]

          11. processed_text = [lemmatizer.lemmatize(word, pos='n') for word in processed_text if word notin set(stopwords)]

          12. processed_text = ' '.join(processed_text)

          13. processed_text = re.sub('stock', '', processed_text)

          模型
          下一步是創(chuàng)建符合我們目的的模型。因此,我們使用python中的sklearn庫。由于我們想知道每個日期的關鍵信息,我們使用 TfidfVectorizer模型。這允許我們設置關鍵特征的數(shù)量,我們將其設置為8個最大特征。
          1. from sklearn.feature_extraction.text importTfidfVectorizer

          2. tf_idf_model = TfidfVectorizer(max_features=8)

          3. processed_text_tf = tf_idf_model.fit_transform(preprocessed_texts)

          4. tf_idf_values = tf_idf_model.idf_

          5. tf_idf_names = tf_idf_model.get_feature_names()

          接下來,我們每天用當天數(shù)據(jù)集中的所有新聞片段來應用這個模型。注意,這個模型不需要訓練,因為它是一個確定的算法。通過這種方式,我們得到一組8個代表當天關鍵信息的詞。同樣,每個詞都有一個tf-idf值,表示它在當天的重要性。
          結果
          最后,我們將結果總結為以下圖表。在這些圖表中,出現(xiàn)了模型中的所有相關詞匯,在方框中則是相關的新聞。為了澄清結果,第一個圖表包含了2019年上半年的信息,第二個圖表反映了2019年下半年的情況。

          2019年1月至2019年6月的相關議題和相關新聞

          2019年7月至2020年1月的相關議題和相關新聞

          總結
          該模型似乎可以從大量的新聞作品中提取出最重要的詞語。最大的挑戰(zhàn)是如何利用這個模型提煉信息后,制定一個有利于我們投資的策略。


          - 點擊下方閱讀原文加入社區(qū)會員 -

          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产黄色电影一级片 | 一级黄色中文电影影视视屏 | 四虎成人无码影院 | 看老女人操逼 | 91AV综合网 |