Գտեք նախածանցի հաճախականությունը տողերի ցանկում՝ օգտագործելով Python-ը
Այս հոդվածում մենք կսովորենք, թե ինչպես գտնել նախածանցների հաճախականությունը տողերի ցանկում՝ օգտագործելով python: Այս ծրագիրը python-ում լուծելու տարբեր եղանակներ կան, մենք կանդրադառնանք դրանցից մի քանիսին:
Նախածանցների հաճախականությունը գտնելը կարող է օգնել գտնել տողի մեջ բառերի գործածության օրինաչափությունը և բաշխումը:
Մեթոդ 1. Simple for Loop-ի օգտագործումը
Օրինակ
def find_prefix_freq(strings, prefix):
count = 0
for string in strings:
if string.startswith(prefix):
count += 1
return count
strings = ['apple', 'aptitude', 'approve', 'aplaude','application', 'applause' 'apologize']
prefix = 'app'
print("Frequency of prefix "+ prefix + " is: "+ str(find_prefix_freq(strings, prefix)))
Արդյունք
Frequency of prefix app is: 4
Բացատրություն
Այստեղ ֆունկցիան վերցնում է երկու պարամետրային տող և նախածանց: Ֆունկցիայի ներսում մենք ունենք count փոփոխական, որը կհաշվի նույն նախածանց ունեցող տողի ընդհանուր թիվը: Օգտագործելով for loop-ը, մենք կանցնենք յուրաքանչյուր տողի վրայով և օգտագործելով startswith() մեթոդը, այն կստուգի, թե արդյոք այն սկսվում է տրված նախածանցով, եթե այն կա, ապա count-ը կավելանա 1-ով:
Մեթոդ 2. Ցուցակի ըմբռնման օգտագործում
Օգտագործելով ցուցակի ըմբռնման մեթոդը, մենք կարող ենք ստուգել, թե ինչպես գտնել տողը նախածանցով որպես տրված նախածանցի տող: Այն մեզ հնարավորություն է տալիս զտել տողը, որը սկսվում է տվյալ նախածանցով:
Օրինակ
def find_prefix_freq(strings, prefix):
filtered_strings = [string for string in strings if string.startswith(prefix)]
count = len(filtered_strings)
return count
strings = ['apple', 'aptitude', 'approve', 'aplaude','application', 'applause' 'apologize']
prefix = 'app'
print("Frequency of prefix "+ prefix + " is: "+ str(find_prefix_freq(strings, prefix)))
Արդյունք
Frequency of prefix app is: 4
Բացատրություն
Այստեղ ֆունկցիան վերցնում է երկու պարամետրային տող և նախածանց: Ֆունկցիայի ներսում մենք կօգտագործենք ցուցակի ըմբռնումը նոր ցուցակ filtered_strings ստեղծելու համար: Ցուցակի ըմբռնումը կրկնվում է տողերի ցանկի յուրաքանչյուր տողի վրա և ստուգում, թե արդյոք տողը սկսվում է տվյալ նախածանցով՝ օգտագործելով startswith() մեթոդը։ Filtered_strings ցանկին ավելացվում են միայն այս պայմանը բավարարող տողերը: Մենք կօգտագործենք len() ֆունկցիան՝ ստանալու համար տրված նախածանցով սկսվող տողի հաշվարկը:
Մեթոդ 3. Օգտագործելով Counter Class
Այս մեթոդում մենք կօգտագործենք հաշվիչների դասը հավաքածուի մոդուլից: Այն մեզ տալիս է հավաքածուի տարրերի հայտնվելը հաշվելու հակիրճ եղանակ:
Օրինակ
from collections import Counter
def find_prefix_freq(strings, prefix):
pref = [string[:len(prefix)] for string in strings if string.startswith(prefix)]
prefix_freq = Counter(pref)
count = prefix_freq[prefix]
return count
strings = ['apple', 'aptitude', 'approve', 'aplaude','application', 'applause' 'apologize']
prefix = 'app'
print("Frequency of prefix "+ prefix + " is: "+ str(find_prefix_freq(strings, prefix)))
Արդյունք
Frequency of prefix app is: 4
Բացատրություն
Այստեղ մենք ներմուծեցինք հաշվիչի դասը հավաքածուի մոդուլից։ Counter class-ն օգնում է մեզ գտնել ցանկացած ցուցակի կամ կրկնվող թվերի հաճախականությունը: Ինչպես մեթոդ 3-ը, մենք կօգտագործենք ցուցակի ըմբռնումը նոր ցուցակի նախադիտումը ստեղծելու համար: Ցուցակի ըմբռնումը կկրկնվի ցուցակի յուրաքանչյուր տողի վրա և կստուգի, թե արդյոք տողը սկսվում է տրված նախածանցով` օգտագործելով startswith() մեթոդը և կհանի տվյալ հատվածը` կտրելով [:len(prefix)]: Օգտագործելով այս ձևը, մենք կարող ենք ավելացնել տողը նախադիտական ցուցակում, որը բավարարում է չափանիշներին:
Դրանից հետո մենք կօգտագործենք Counter դասը՝ prefix_freq օբյեկտ ստեղծելու համար՝ անցնելով pref ցուցակում։ Օգտագործելով prefix_freq[pref] մենք կարող ենք ստանալ count կապված pref-ի հետ և վերագրել այն count փոփոխականին:
Մեթոդ 4. Pandas Dataframe-ի օգտագործումը
Մենք օգտագործում ենք տվյալների շրջանակը, երբ ունենք տողի ավելի մեծ չափս կամ տողի բարդ կառուցվածք, այնուհետև կարող ենք օգտագործել սա տողերի ցանկում նախածանցը հաշվարկելու համար: Այստեղ մենք տողերի ցուցակը վերածեցինք տվյալների շրջանակի և դրանից հետո օգտագործեցինք ներկառուցված ֆունկցիան՝ նախածանց պարունակող տողը հաշվելու համար։
Օրինակ
import pandas as pd
def find_prefix_freq(strings, prefix):
df = pd.DataFrame(strings, columns=['String'])
df['Prefix'] = df['String'].apply(lambda x: x[:len(prefix)])
prefix_freq = df.groupby('Prefix').size().to_dict()
count = prefix_freq.get(prefix, 0)
return count
strings = ['apple', 'aptitude', 'approve', 'aplaude','application', 'applause' 'apologize']
prefix = 'app'
print("Frequency of prefix "+ prefix + " is: "+ str(find_prefix_freq(strings, prefix)))
Արդյունք
Frequency of prefix app is: 4
Բացատրություն
Այստեղ ծրագրում մենք ներմուծեցինք պանդաների գրադարանը։ Մեր ֆունկցիան վերցնում է երկու պարամետրային տող և նախածանց: Ֆունկցիայի ներսում մենք ստեղծեցինք DataFrame օբյեկտ df՝ օգտագործելով pd.DataFrame() կոնստրուկտորը: Կոնստրուկտորում տողերի ցանկը փոխանցվում է որպես տվյալ և դրան վերագրվում է տող անունով սյունակ: Նոր սյունակ կավելացվի df տվյալների շրջանակին՝ օգտագործելով .apply() մեթոդը: Օգտագործելով lambda ֆունկցիան, մենք կկիրառենք [:len(prefix)] տողի կտրումը տողերից յուրաքանչյուրի վրա և կհանենք նախածանցի մասը:
Օգտագործելով groupby մեթոդը տվյալների շրջանակում, մենք կխմբավորենք տողը նախածանցի սյունակի արժեքով:
Մեթոդ 5. Կանոնավոր արտահայտությունների օգտագործում
Կանոնավոր արտահայտությունը համարվում է շատ հզոր լարային կառուցվածքի օրինաչափությունների համապատասխանության համար: Այստեղ մենք օգտագործում ենք «re» մոդուլը՝ որոնելու տողը, որը համապատասխանում է տվյալ նախածանցին և հաշվում համընկնումների ընդհանուր թիվը։
Օրինակ
import re
def find_prefix_freq(strings, prefix):
pattern = f'^{prefix}'
count = sum(1 for string in strings if re.match(pattern, string))
return count
strings = ['apple', 'aptitude', 'approve', 'aplaude','application', 'applause' 'apologize']
prefix = 'app'
print("Frequency of prefix "+ prefix + " is: "+ str(find_prefix_freq(strings, prefix)))
Արդյունք
Frequency of prefix app is: 4
Բացատրություն
Վերոնշյալ ծրագրում մենք ներմուծել ենք կանոնավոր արտահայտություններ, որոնք կպահանջվեն նախածանցի համապատասխանության համար: Ֆունկցիայի ներսում մենք նախ կկառուցենք կանոնավոր արտահայտությունը օգտագործելով ^նշանը, այն նշանակում է տողի սկիզբը, որին հաջորդում է նախածանցը: Կանոնավոր արտահայտությունը կառուցելուց հետո մենք կօգտագործենք ցուցակի ըմբռնման տեխնիկան՝ ցանկի յուրաքանչյուր տողի վրա կրկնելու համար, և սկզբում յուրաքանչյուր տող կօգտագործենք re.match() ֆունկցիան՝ ստուգելու, թե արդյոք այն համընկնում է մեր կողմից կառուցված օրինաչափության հետ: կանոնավոր արտահայտություն. Եթե օրինաչափությունը համընկնում է, ապա մենք կավելացնենք մեր հաշվարկը:
Այսպիսով, սրանք որոշ մեթոդներ էին, որոնք կարող են օգտագործվել s տողերի ցանկում նախածանցի հաճախականությունը գտնելու համար: Մեթոդներից յուրաքանչյուրն ունի իր առավելությունները, ինչպիսիք են կատարումը, պարզությունը: Օգտագործելով այս մեթոդները, դուք կարող եք արժեքավոր տեղեկատվություն հանել տողից: Դուք կարող եք ընտրել մեթոդներից որևէ մեկը՝ ըստ ձեր նախասիրության և ակնկալվող կատարողականության և կիրառել այն՝ նախածանցի հաճախականության մասին պատկերացում կազմելու համար: