Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算

加入好友
加入社群
Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算 - 儲蓄保險王

資料來源: https://docs.python.org/3/library/stdtypes.html#str.find

Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算 - 儲蓄保險王

data.txt:

I love you all. But you do love love me at all.\nYou always love Python.

程式碼:

filePath = r”C:\Python\myfind\data.txt”

def keywordIndexFromFile(patterns : str, filePath : str) -> list:        
    with open(filePath,”r”) as f:
        dataStr = f.read()
        #print(dataStr)
        lst=[]
        idx = dataStr.find(patterns)
        #lst=[ idx ]        
       
        while idx != -1:
            #idxTmp = dataStr.find(patterns,idx+1)
            lst.append( idx )
            idx = dataStr.find(patterns,idx+1)
    return lst

print(keywordIndexFromFile(“love”,filePath))
Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算 - 儲蓄保險王
參考解答:
Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算 - 儲蓄保險王
 
詞頻計算:
Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算 - 儲蓄保險王
# -*- coding: utf-8 -*-
from typing import Tuple
filePath = r”C:\Python\myfind\data.txt”

def keywordIndexFromFile(patterns : str,
         filePath : str) -> Tuple[list[int],float]:        
    with open(filePath,”r”) as f:
        dataStr = f.read()
        #print(dataStr)
    lst=[]
    idx = dataStr.find(patterns)
    #lst=[ idx ]        
   
    while idx != -1:
        #idxTmp = dataStr.find(patterns,idx+1)
        lst.append( idx )
        idx = dataStr.find(patterns,idx+1)
    lstAll = dataStr.split(” “)
    #print(lstAll , len(lstAll))
    termFrequency = len(lst) / len( lstAll )
    return lst, termFrequency

lst, termFrequency = keywordIndexFromFile(“love”,filePath)
print(“Key word index:”,lst)
print(“詞頻: %.2f %%” %(termFrequency*100) )

Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算 - 儲蓄保險王

參考解答:
Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算 - 儲蓄保險王
 
改用**dict當作輸入參數:
Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算 - 儲蓄保險王
 

加入好友
加入社群
Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算 - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *