Hướng dẫn average number of words per sentence python - số từ trung bình trên mỗi câu python

Tôi đang gặp một chút khó khăn khi cố gắng đếm số lượng từ mỗi câu. Đối với trường hợp của tôi, tôi giả sử các câu chỉ kết thúc bằng "!",

words = ["Hey", "!", "How", "are", "you", "?", "I", "would", "like", "a", "sandwich", "."]

sentences = [[]]
ends = set(".?!")
for word in words:
    if word in ends: sentences.append([])
    else: sentences[-1].append(word)

if sentences[0]:
    if not sentences[-1]: sentences.pop()
    print("average sentence length:", sum(len(s) for s in sentences)/len(sentences))
0 hoặc
words = ["Hey", "!", "How", "are", "you", "?", "I", "would", "like", "a", "sandwich", "."]

sentences = [[]]
ends = set(".?!")
for word in words:
    if word in ends: sentences.append([])
    else: sentences[-1].append(word)

if sentences[0]:
    if not sentences[-1]: sentences.pop()
    print("average sentence length:", sum(len(s) for s in sentences)/len(sentences))
1

Tôi có một danh sách trông như thế này:

["Hey, "!", "How", "are", "you", "?", "I", "would", "like", "a", "sandwich", "."]

Đối với ví dụ trên, tính toán sẽ là

words = ["Hey", "!", "How", "are", "you", "?", "I", "would", "like", "a", "sandwich", "."]

sentences = [[]]
ends = set(".?!")
for word in words:
    if word in ends: sentences.append([])
    else: sentences[-1].append(word)

if sentences[0]:
    if not sentences[-1]: sentences.pop()
    print("average sentence length:", sum(len(s) for s in sentences)/len(sentences))
2. Mặc dù vậy, tôi đang gặp khó khăn trong việc đạt được điều này! Bất kỳ ý tưởng?

Hướng dẫn average number of words per sentence python - số từ trung bình trên mỗi câu python

Sandipan Dey

20.3k2 Huy hiệu vàng42 Huy hiệu bạc58 Huy hiệu Đồng2 gold badges42 silver badges58 bronze badges

hỏi ngày 9 tháng 2 năm 2017 lúc 18:17Feb 9, 2017 at 18:17

words = ["Hey", "!", "How", "are", "you", "?", "I", "would", "like", "a", "sandwich", "."]

sentences = [[]]
ends = set(".?!")
for word in words:
    if word in ends: sentences.append([])
    else: sentences[-1].append(word)

if sentences[0]:
    if not sentences[-1]: sentences.pop()
    print("average sentence length:", sum(len(s) for s in sentences)/len(sentences))

Đã trả lời ngày 9 tháng 2 năm 2017 lúc 18:21Feb 9, 2017 at 18:21

inspectorG4dgetinspectorG4dgetinspectorG4dget

106K25 Huy hiệu vàng138 Huy hiệu bạc236 Huy hiệu Đồng25 gold badges138 silver badges236 bronze badges

Một giải pháp đơn giản:

mylist = ["Hey", "!", "How", "are", "you", "?", "I", "would", "like", "a", "sandwich", "."]
terminals = set([".", "?", "!"]) # sets are efficient for "membership" tests
terminal_count = 0

for item in mylist:
    if item in terminals: # here is our membership test
        terminal_count += 1

avg = (len(mylist) - terminal_count)  / float(terminal_count)

Điều này giả định bạn chỉ quan tâm đến việc nhận được mức trung bình, không phải số lượng riêng lẻ trên mỗi câu.

Nếu bạn muốn có một chút lạ mắt, bạn có thể thay thế vòng lặp

words = ["Hey", "!", "How", "are", "you", "?", "I", "would", "like", "a", "sandwich", "."]

sentences = [[]]
ends = set(".?!")
for word in words:
    if word in ends: sentences.append([])
    else: sentences[-1].append(word)

if sentences[0]:
    if not sentences[-1]: sentences.pop()
    print("average sentence length:", sum(len(s) for s in sentences)/len(sentences))
3 bằng một cái gì đó như thế này:

terminal_count = sum(1 for item in mylist if item in terminals)

Đã trả lời ngày 9 tháng 2 năm 2017 lúc 18:35Feb 9, 2017 at 18:35

FaganfaganFagan

Phù hiệu bằng đồng 11144 bronze badges

4

Giải pháp ngắn bằng các hàm Re.Split () và sum ():

import re
s = "Hey ! How are you ? I would like a sandwich ."
parts = [len(l.split()) for l in re.split(r'[?!.]', s) if l.strip()]

print(sum(parts)/len(parts))

Đầu ra:

3.0

Trong trường hợp nếu chỉ có một danh sách các từ như đầu vào:

import re
s = ["Hey", "!", "How", "are", "you", "?", "I", "would", "like", "a", "sandwich", "."]
parts = [len(l.split()) for l in re.split(r'[?!.]', ' '.join(s)) if l.strip()]

print(sum(parts)/len(parts))   # 3.0

Đã trả lời ngày 9 tháng 2 năm 2017 lúc 18:23Feb 9, 2017 at 18:23

Hướng dẫn average number of words per sentence python - số từ trung bình trên mỗi câu python

RomanperekhrestromanperkhrestRomanPerekhrest

76.8K4 Huy hiệu vàng53 Huy hiệu bạc95 Huy hiệu Đồng4 gold badges53 silver badges95 bronze badges

1

  1. Nhà
  2. Diễn đàn lập trình
  3. Diễn đàn phát triển phần mềm
  4. Câu hỏi thảo luận

Hướng dẫn average number of words per sentence python - số từ trung bình trên mỗi câu python

12 năm trước

Chào mọi người,

Tôi là người mới ở Python và diễn đàn này đã giúp đỡ rất nhiều cho đến nay, vì vậy tôi hy vọng ai đó sẵn sàng giúp tôi về vấn đề sau đây. Nó có thể đếm số lượng câu và từ trong một văn bản, nhưng sau khi tôi chia một văn bản thành các câu, tôi không biết cách đếm các từ trong mỗi câu riêng biệt để tôi có thể tính toán độ lệch chuẩn.
It can count the number of sentences and words in a text, but after I have split up a text into sentences, I do not know how to count the words in each sentence separately so I can calculate the standard deviation.

GRT

  • 3 người đóng góp Contributors
  • 3 câu trả lời Replies
  • Quan điểm 1K Views
  • 6 ngày thảo luận Discussion Span
  • Bài đăng mới nhất 12 năm trước Bài đăng mới nhất của Felulah 12 Years Ago Latest Post by Felulah

Câu trả lời được đề xuất

Bạn có thể sử dụng một regex cho các từ

import re
word_re = re.compile(r"[A-Za-z]+")

def count_words(sentence):
    return word_re.subn('', sentence)[1]

print(count_words("Give me bacon and eggs, said the other man."))

Nhảy để đăng

Tất cả 3 câu trả lời

Hướng dẫn average number of words per sentence python - số từ trung bình trên mỗi câu python

GRIBOUILLIS1.391 LUẬT SƯ 1,391 Programming Explorer Team Colleague

12 năm trước

Bạn có thể sử dụng một regex cho các từ

import re
word_re = re.compile(r"[A-Za-z]+")

def count_words(sentence):
    return word_re.subn('', sentence)[1]

print(count_words("Give me bacon and eggs, said the other man."))

Hướng dẫn average number of words per sentence python - số từ trung bình trên mỗi câu python

Vegaseat1.735 đồng nghiệp của Đội đạo đức giả của Daniweb 1,735 DaniWeb's Hypocrite Team Colleague

12 năm trước

Hướng dẫn average number of words per sentence python - số từ trung bình trên mỗi câu python

12 năm trước

Bạn có thể sử dụng một regex cho các từ

Vegaseat1.735 đồng nghiệp của Đội đạo đức giả của Daniweb

Cảm ơn bạn đã giúp đỡ! Tôi đã có thể tính toán từ trung bình và độ dài câu và độ lệch chuẩn của chúng, nhưng bây giờ tôi bị mắc kẹt trong việc tính toán SD của tỷ lệ loại máy tính: -S

GRT

Trả lời chủ đề này

Là một phần của cộng đồng Daniweb

Chúng tôi là một cộng đồng thân thiện, tập trung vào ngành của các nhà phát triển, các chuyên gia CNTT, nhà tiếp thị kỹ thuật số và những người đam mê công nghệ gặp gỡ, học tập và chia sẻ kiến ​​thức. The person who asked this question has marked it as solved. Solved questions live forever in our knowledge base where they go on to help others facing the same issues for years to come. Are you sure you have something valuable to add that has not already been mentioned? Consider starting a new topic instead. Otherwise, please be thoughtful, detailed and courteous, and adhere to our posting rules.

  • Trả lời chủ đề này
  • Câu hỏi này đã được giải quyết! Người hỏi câu hỏi này đã đánh dấu nó như đã giải quyết. Giải quyết các câu hỏi tồn tại mãi mãi trong cơ sở kiến ​​thức của chúng tôi, nơi họ tiếp tục giúp đỡ những người khác đối mặt với những vấn đề tương tự trong nhiều năm tới. Bạn có chắc bạn có một cái gì đó có giá trị để thêm mà chưa được đề cập? Thay vào đó, hãy xem xét bắt đầu một chủ đề mới. Nếu không, xin vui lòng chu đáo, chi tiết và lịch sự, và tuân thủ các quy tắc đăng bài của chúng tôi.

Chỉnh sửa

Số lượng từ trung bình trong một câu là gì?

Một độ dài câu trung bình tốt Không có độ dài hoàn hảo, tuy nhiên, một câu được viết tốt nên có trung bình 15-20 từ.15-20 words on average.

Làm thế nào để bạn đếm số lượng từ trong một câu python?

Cách tiếp cận 1 - sử dụng hàm split ().Chức năng chia chia chuỗi thành một danh sách có thể sử dụng được với khoảng trống như một dấu phân cách.....
Cách tiếp cận 2 - sử dụng mô -đun regex.Ở đây hàm findall () được sử dụng để đếm số lượng từ trong câu có sẵn trong mô -đun regex.....
Cách tiếp cận 3 - sử dụng hàm sum ()+ dải ()+ split () ..

Làm thế nào để bạn tìm thấy độ dài câu trung bình trong Python?

Tính độ dài câu trung bình bằng các từ (chia số từ cho số lượng câu).divide the number of words by the number of sentences).