사전을 사용하여 텍스트 파일에서 가장 많이 발생하는 단어 찾기

변덕스러운

내 질문은 다음과 유사 있지만 약간의 차이. 파일을 읽고 '보낸 사람'으로 시작하는 이메일이 포함 된 줄을 찾은 다음이 이메일을 저장할 사전을 만들고 최대 발생 이메일 주소도 제공하려고합니다.

파일에서 찾을 줄은 다음과 같습니다.

발신 : [email protected] 2008 년 1 월 5 일 토요일 09:14:16

이것이 발견 될 때마다 이메일 부분을 추출한 다음 사전을 만들기 전에 목록에 배치해야합니다.

dict에서 최대 키, 값을 인쇄하기 위해이 코드 샘플을 찾았습니다.

counts = dict()  
names = ['csev','owen','csev','zqian','cwen']  
for name in names:  
  counts[name] = counts.get(name,0) + 1  
  maximum = max(counts, key = counts.get)
print maximum, counts[maximum]

이 샘플 코드에서 다음 프로그램으로 시도했습니다.

import re

name = raw_input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
handle = open(name)
matches = []
addy = []
counts = dict()

for lines in handle :
    # look for specific characters in document text
    if not lines.startswith("From ") : continue
    # increment the count variable for each math found
    lines.split()
    # append the required lines to the matches list
    matches.append(lines)
    # loop through the list to acess each line individually
    for email in matches :
        # place values in variable
        out = email
        # looking through each line for any email add found
        found = re.findall(r'[\w\.-]+@[\w\.-]+', out)
        # loop through the found emails and print them out
        for i in found :
            i.split()
            addy.append(i)
            for i in addy:
                counts[i] = counts.get(i, 0) + 1
                maximum = max(counts, key=counts.get)
    print counts
    print maximum, counts[maximum]

이제 문제는 from으로 시작하는 27 줄만 있고 해당 목록에서 가장 많이 반복되는 이메일은 5 번 발생하는 '[email protected]'여야하지만 코드를 실행하면 출력이 다음과 같아야한다는 것입니다.

{'[email protected]': 1640, '[email protected]': 7207, 'cwen@
iupui.edu': 8888, '[email protected]': 1911, '[email protected]': 10678, '
[email protected]': 10140, '[email protected]': 4205, '[email protected]'
: 2500, '[email protected]': 16804, '[email protected]': 7490, 'ray@media
.berkeley.edu': 168}    

이해를 돕기위한 텍스트 파일 링크 : 텍스트 파일

Noelkd

몇 가지 문제가 있습니다.

첫 번째 for email in matches는 텍스트 파일의 각 행에 대해 루프가 호출된다는 것입니다.

for lines in handle :
    # look for specific characters in document text
    if not lines.startswith("From ") : continue
    # increment the count variable for each math found
    lines.split()
    # append the required lines to the matches list
    matches.append(lines)

# loop through the list to acess each line individually
for email in matches:

그래서 그 변화로 당신은 알다시피 경기를 한 번 반복합니다.

그런 다음 각 경기에서 하나만 있다는 것을 알고 있으므로 찾기를 다음과 같이 변경할 수 있습니다.

found = re.findall(r'[\w\.-]+@[\w\.-]+', out)[0]

내가 변경 한 각 항목의 수를 계산하려면 :

# loop through the found emails and print them out
for i in found :
    i.split()
    addy.append(i)
    for i in addy:
        counts[i] = counts.get(i, 0) + 1
        maximum = max(counts, key=counts.get)

더 읽기 쉽게 :

if found in counts:
    counts[found] += 1
else:
    counts[found] = 1

그런 다음 항상 다음과 같이 저장하는 대신 끝에 최대 값을 얻을 수 있습니다.

print counts
print max(counts, key=lambda x : x[1])

통합하면 다음과 같은 이점이 있습니다.

import re

name = raw_input("Enter file:")
if len(name) < 1 : 
    name = "mbox-short.txt"
handle = open(name)
matches = []
addy = []
counts = dict()

for lines in handle :
    # look for specific characters in document text
    if not lines.startswith("From ") : continue
    # increment the count variable for each math found
    lines.split()
    # append the required lines to the matches list
    matches.append(lines)

# loop through the list to acess each line individually
for email in matches:
    # place values in variable
    out = email
    # looking through each line for any email add found
    found = re.findall(r'[\w\.-]+@[\w\.-]+', out)[0]
    # loop through the found emails and print them out
    if found in counts:
        counts[found] += 1
    else:
        counts[found] = 1

print counts
print max(counts, key=lambda x : x[1])

다음을 반환합니다.

{'[email protected]': 1, '[email protected]': 3, '[email protected]': 5, '[email protected]': 1, '[email protected]': 2, '[email protected]': 3, '[email protected]': 4, '[email protected]': 1, '[email protected]': 4, '[email protected]': 2, '[email protected]': 1}
[email protected]

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬을 사용하여 텍스트 파일에서 단어의 n 번째 인스턴스 찾기

분류에서Dev

단일 명령 줄 명령을 사용하여 데이터베이스의 모든 텍스트 파일을 어떻게 검색하여 가장 많이 사용되는 10 개의 단어를 찾을 수 있습니까?

분류에서Dev

정규 표현식을 사용하여 HTML 텍스트에서 이중 문자가있는 단어 찾기

분류에서Dev

Mongodb 필드에 존재하는 가장 많이 발생하는 단어 찾기

분류에서Dev

파이썬을 사용하여 파일에서 가장 자주 발생하는 단어 쌍을 찾는 방법은 무엇입니까?

분류에서Dev

Bash 스크립트를 사용하여 단어 내에서 가장 많이 발생하는 3 개의 문자 시퀀스를 계산하는 방법

분류에서Dev

전체 단어 만 사용하여 텍스트 파일에서 찾기 및 바꾸기위한 배치 파일?

분류에서Dev

Ruby를 사용하여 소스 텍스트 내에서 사전 단어 찾기

분류에서Dev

파이썬을 사용하여 텍스트 파일에서 단어 발생 횟수 계산

분류에서Dev

파이썬을 사용하여 텍스트 파일에서 단어 발생 횟수 계산

분류에서Dev

sed를 사용하여 두 단어 사이에 텍스트 가져 오기

분류에서Dev

파이썬을 사용하여 텍스트 파일에서 IP 가져 오기

분류에서Dev

쉘 스크립트를 사용하여 쉘 스크립트에서 지정된 단어가 처음 발생하기 직전에 텍스트 파일의 내용을 복사해야합니다.

분류에서Dev

파이썬 사전에서 가장 많이 발생하는 값을 찾는 방법은 무엇입니까?

분류에서Dev

Pandas를 사용하여 목록에서 가장 많이 발생하는 항목을 찾는 방법

분류에서Dev

PHP를 사용하여 텍스트 파일에서 하나 이상의 (대소 문자를 구분하지 않는) 단어 찾기 및 제거

분류에서Dev

powershell로 .txt 파일에서 가장 많이 발생하는 문자열 찾기

분류에서Dev

powershell로 .txt 파일에서 가장 많이 발생하는 문자열 찾기

분류에서Dev

문장 부호를 제거한 후 텍스트 파일에서 고유 한 단어 목록을 인쇄하고 가장 긴 단어 찾기

분류에서Dev

파이썬을 사용하여 텍스트의 단어 바꾸기

분류에서Dev

Python을 사용하여 주어진 텍스트 파일에서 사전에 테이블을 추가하는 방법은 무엇입니까?

분류에서Dev

벡터와 무순 맵에서 개수 값을 사용하여 가장 많이 발생하는 단어 3 개를 가져옵니다.

분류에서Dev

파이썬을 사용하여 디렉토리의 모든 텍스트 파일에서 특정 단어를 찾는 방법

분류에서Dev

텍스트 파일에서 고유 한 단어를 찾은 다음 powershell을 사용하여 텍스트 파일에 고유 한 단어를 저장하는 방법

분류에서Dev

텍스트 파일의 각 단어를 파일에서 발생하는 줄 목록에 연결하는 사전 만들기

분류에서Dev

numpy를 사용하여 파이썬에서 구분 기호가없는 텍스트 파일을 어떻게 가져 옵니까?

분류에서Dev

ansible을 사용하여 파일에서 $로 단어 찾기

분류에서Dev

일치 기능을 사용하여 테이블에서 텍스트 찾기

분류에서Dev

Java를 사용하여 용어 중복없이 텍스트 파일에서 용어 (단어) 추출

Related 관련 기사

  1. 1

    파이썬을 사용하여 텍스트 파일에서 단어의 n 번째 인스턴스 찾기

  2. 2

    단일 명령 줄 명령을 사용하여 데이터베이스의 모든 텍스트 파일을 어떻게 검색하여 가장 많이 사용되는 10 개의 단어를 찾을 수 있습니까?

  3. 3

    정규 표현식을 사용하여 HTML 텍스트에서 이중 문자가있는 단어 찾기

  4. 4

    Mongodb 필드에 존재하는 가장 많이 발생하는 단어 찾기

  5. 5

    파이썬을 사용하여 파일에서 가장 자주 발생하는 단어 쌍을 찾는 방법은 무엇입니까?

  6. 6

    Bash 스크립트를 사용하여 단어 내에서 가장 많이 발생하는 3 개의 문자 시퀀스를 계산하는 방법

  7. 7

    전체 단어 만 사용하여 텍스트 파일에서 찾기 및 바꾸기위한 배치 파일?

  8. 8

    Ruby를 사용하여 소스 텍스트 내에서 사전 단어 찾기

  9. 9

    파이썬을 사용하여 텍스트 파일에서 단어 발생 횟수 계산

  10. 10

    파이썬을 사용하여 텍스트 파일에서 단어 발생 횟수 계산

  11. 11

    sed를 사용하여 두 단어 사이에 텍스트 가져 오기

  12. 12

    파이썬을 사용하여 텍스트 파일에서 IP 가져 오기

  13. 13

    쉘 스크립트를 사용하여 쉘 스크립트에서 지정된 단어가 처음 발생하기 직전에 텍스트 파일의 내용을 복사해야합니다.

  14. 14

    파이썬 사전에서 가장 많이 발생하는 값을 찾는 방법은 무엇입니까?

  15. 15

    Pandas를 사용하여 목록에서 가장 많이 발생하는 항목을 찾는 방법

  16. 16

    PHP를 사용하여 텍스트 파일에서 하나 이상의 (대소 문자를 구분하지 않는) 단어 찾기 및 제거

  17. 17

    powershell로 .txt 파일에서 가장 많이 발생하는 문자열 찾기

  18. 18

    powershell로 .txt 파일에서 가장 많이 발생하는 문자열 찾기

  19. 19

    문장 부호를 제거한 후 텍스트 파일에서 고유 한 단어 목록을 인쇄하고 가장 긴 단어 찾기

  20. 20

    파이썬을 사용하여 텍스트의 단어 바꾸기

  21. 21

    Python을 사용하여 주어진 텍스트 파일에서 사전에 테이블을 추가하는 방법은 무엇입니까?

  22. 22

    벡터와 무순 맵에서 개수 값을 사용하여 가장 많이 발생하는 단어 3 개를 가져옵니다.

  23. 23

    파이썬을 사용하여 디렉토리의 모든 텍스트 파일에서 특정 단어를 찾는 방법

  24. 24

    텍스트 파일에서 고유 한 단어를 찾은 다음 powershell을 사용하여 텍스트 파일에 고유 한 단어를 저장하는 방법

  25. 25

    텍스트 파일의 각 단어를 파일에서 발생하는 줄 목록에 연결하는 사전 만들기

  26. 26

    numpy를 사용하여 파이썬에서 구분 기호가없는 텍스트 파일을 어떻게 가져 옵니까?

  27. 27

    ansible을 사용하여 파일에서 $로 단어 찾기

  28. 28

    일치 기능을 사용하여 테이블에서 텍스트 찾기

  29. 29

    Java를 사용하여 용어 중복없이 텍스트 파일에서 용어 (단어) 추출

뜨겁다태그

보관