У меня есть 200 текстовых файлов на хинди. хотите удалить пробел спецсимволом и найдите биграмму и триграмму в python - PullRequest
0 голосов
/ 22 февраля 2020
import os

dir=os.getcwd()
print(dir)
dir1=os.path.join(dir,"test")
filename=os.listdir(dir1)
bad_chars = [';', ':', '!', "*","#","%"]
for i in filename:
    filepath=os.path.join(dir1,i)  #  the path
    file=open(filepath,"r",encoding="utf8") #open first text file
    read_=file.read()
    fields = read_.split(" ")
    print(fields)
    file1=open(filepath,"w",encoding="utf8")
    file2=open(filepath,"a",encoding="utf8")
    for j in range(len(fields)):        
        for p in bad_chars :
            fields[j].replace(i,' ')
            file2.write(fields[j])
            print ("Resultant list is : " , fields[j])
file.close()
file1.close()
file2.close()

Я пытаюсь удалить специальный символ из всех текстовых файлов 200

это код для биграма, который я нашел

import nltk
from collections import Counter
fo = open(r"Aacha_S_001_0_E1800.txt",errors='ignore',encoding='utf8')
fo1 = fo.readlines()
for line in fo1:
    bigm = list(nltk.bigrams(line.split()))
    bigmC = Counter(bigm)
    for key, value in bigmC.items():
       # print(key, value)
        out_put = str(key) + " was found = " + str(value) + " times" + "\n"
        with open('Test1.txt','a',encoding='utf8') as f:
            f.write(out_put)       
            f.close()        
print(".............done.............") 

хочу, чтобы оба кода в одной программе спасибо Вы заранее пример меня зовут Эшан. вывод my, name встречается 1 name, встречается 1 is, продвижение происходит 1 появление может быть больше 1 согласно тексту

1 Ответ

0 голосов
/ 22 февраля 2020

Попробуйте так:

for file in filename:
    filepath=os.path.join(dir1,file)


    with open('inp.txt','r+') as f:
      texts = f.read()
      for c in bad_chars:
        texts=texts.replace(c,' ')

    #write to the file
    with open('inp.txt','w') as f:
      f.write(texts)
...